Skip to main content
Subscribe to these events via Webhooks to track Task progress and data availability in real time. All webhook payloads include the common fields (webhook_id, event_type, event_created_at, updated_at, user_id, template_id) plus the event-specific fields below.

task-status-updated

Fires for each Task status change during the connection lifecycle. This is the primary event for tracking verification progress. Additional fields:
FieldDescription
task_idThe Task identifier
link_idAccount connection ID (use to retrieve access_token)
productincome, employment, or admin
data_sourcepayroll, docs, insurance, financial_accounts, or tax
tracking_infoCustom metadata passed via bridge_token (nullable)
statusCurrent task status (see Connection Lifecycle)
{
  "webhook_id": "488f424096d3461aa0e4cf11a985f6df",
  "task_id": "521442a087604e599c637db310d07402",
  "link_id": "d39d86dcc20c46e0ae75ba9ab1311a21",
  "product": "income",
  "data_source": "payroll",
  "tracking_info": null,
  "event_type": "task-status-updated",
  "event_created_at": "2022-08-24T13:55:12.845645Z",
  "updated_at": "2022-08-24T13:55:12.845666+00:00",
  "status": "done",
  "user_id": "88fef4cea64c40b5ad6727cc9b0b9fdc",
  "template_id": null
}
When status is done, all data has been downloaded and processed. This is when you should fetch verification reports.

Data object events: created

These events fire once per Link for each non-refresh Task completion, indicating that data objects have been successfully retrieved for the first time.

employment-created

An employment record has been discovered and extracted. Additional fields:
FieldDescription
object_idThe employment object identifier
task_idThe associated Task
tracking_infoCustom metadata (nullable)
{
  "webhook_id": "b8c9d0e1f2a3b4c5d6a7b8c9d0e1f2a3",
  "event_type": "employment-created",
  "event_created_at": "2022-08-24T13:56:00.000000Z",
  "updated_at": "2022-08-24T13:56:00.000000+00:00",
  "object_id": "emp_obj_abc123",
  "task_id": "521442a087604e599c637db310d07402",
  "link_id": "d39d86dcc20c46e0ae75ba9ab1311a21",
  "product": "employment",
  "data_source": "payroll",
  "tracking_info": null,
  "user_id": "88fef4cea64c40b5ad6727cc9b0b9fdc",
  "template_id": null
}

profile-created

User profile information has been extracted. Additional fields: Same as employment-created (object_id, task_id, tracking_info).

statements-created

Pay statements have been retrieved. Fires once per Link for each non-refresh Task completion. Additional fields:
FieldDescription
employment_idThe associated employment record
task_idThe associated Task
objects_countNumber of statements retrieved
{
  "webhook_id": "c9d0e1f2a3b4c5d6a7b8c9d0e1f2a3b4",
  "event_type": "statements-created",
  "event_created_at": "2022-08-24T13:57:00.000000Z",
  "updated_at": "2022-08-24T13:57:00.000000+00:00",
  "employment_id": "emp_obj_abc123",
  "task_id": "521442a087604e599c637db310d07402",
  "link_id": "d39d86dcc20c46e0ae75ba9ab1311a21",
  "product": "income",
  "data_source": "payroll",
  "objects_count": 12,
  "user_id": "88fef4cea64c40b5ad6727cc9b0b9fdc",
  "template_id": null
}

shifts-created

Shift schedule data has been extracted. Additional fields: Same as statements-created (employment_id, task_id, objects_count).

bank-accounts-created

Connected bank accounts have been discovered. Additional fields: Same as statements-created (employment_id, task_id, objects_count).

Data object events: updated

These events fire after completing refresh Tasks. They only trigger when the objects_count value changes from the previous refresh. For example, if a person had 31 pay stubs and now has 32.

employment-updated

Employment data has been modified during a refresh. Additional fields: Same as employment-created (object_id, task_id, tracking_info).

profile-updated

Profile information has changed during a refresh. Additional fields: Same as employment-created (object_id, task_id, tracking_info).

statements-updated

New pay statements have been found during a refresh. Additional fields: Same as statements-created (employment_id, task_id, objects_count).

shifts-updated

Shift data has changed during a refresh. Additional fields: Same as statements-created (employment_id, task_id, objects_count).

bank-accounts-updated

Bank account data has changed during a refresh. Additional fields: Same as statements-created (employment_id, task_id, objects_count).

Event summary

EventTriggerKey Fields
task-status-updatedTask status transitionstask_id, status, product, data_source
employment-createdFirst employment extractionobject_id, task_id
profile-createdFirst profile extractionobject_id, task_id
statements-createdFirst statement retrievalemployment_id, objects_count
shifts-createdFirst shift extractionemployment_id, objects_count
bank-accounts-createdFirst bank account discoveryemployment_id, objects_count
employment-updatedEmployment changed on refreshobject_id, task_id
profile-updatedProfile changed on refreshobject_id, task_id
statements-updatedNew statements on refreshemployment_id, objects_count
shifts-updatedShifts changed on refreshemployment_id, objects_count
bank-accounts-updatedBank accounts changed on refreshemployment_id, objects_count