Skip to content

Webhook Events Resources

Learn about the different events you can listen to and their payload structure

Webhook events have an object structure with the following common top-level fields and a data field with a structure specific to the event type:

Common Properties

id

A unique ID identifying this event.

create_time

The time the event was sent. A timestamp in format 2021-04-28T13:45:25.781Z.

event_type

The type of the event. Follows a resource.event format.

version

A string representation of the version of the data payload for this event.

data

An object containing relevant event information. Shape varies per type as described below.

Sample Event

Copied
1{
2 "id": "21e42d52-4145-465e-94bd-322c13bbe5fa",
3 "create_time": "2022-08-23T13:54:27.612477Z",
4 "event_type": "job.status",
5 "version": "1.0",
6 "data": {
7 "job": {}, // The Job Resource
8 }
9}

Events

Here we document all the types of events we currently send. We may add new events to this list at any time, so while developing and maintaining your solution, you should not assume that the events here are the only types that exist.

job.status

Occurs when the status of a job changes. For example, when a job is picked up by a Tax Pro the job will transition to the CLAIMED status. All available statuses are specified in the Job Resource page.

event_type
job.status
data
  • job : The Job Resource as specified in the Job Resource page.

Sample

Copied
1{
2 //...
3 "event_type": "job.status",
4 "data": {
5 "job": {} // The Job Resource
6 }
7}

job.cancelled

Occurs when a job is cancelled after having previously been in progress.

event_type
job.cancelled
data
  • job : The Job Resource as specified in the Job Resource page.
  • reason : A string with a short description of why the job was cancelled.

Sample

Copied
1{
2 //...
3 "event_type": "job.cancelled",
4 "data": {
5 "job": {} // The Job Resource
6 "reason": "Client opted to do services on their own"
7 }
8}

job.messages.all

Occurs when a new message is sent in a job's conversation.

event_type
job.messages.all
data
  • job : The Job Resource as specified in the Job Resource page.
  • sender_user_id : the ID of the user who sent the message.

Sample

Copied
1{
2 //...
3 "event_type": "job.messages.all",
4 "data": {
5 "job": {} // The Job Resource
6 "sender_user_id": "21bff753-f48b-4ebb-b0bc-ae21461000f4"
7 }
8}

job.document.added

Occurs when a document is added to a job.

event_type
job.document.added
data
  • job : The Job Resource as specified in the Job Resource page.
  • document_id : The ID of the document that was added,
  • document_type: The type of the document that was added.
  • document_type_id: The ID of the document type.

Sample

Copied
1{
2 //...
3 "event_type": "job.document.added",
4 "data": {
5 "job": {} // The Job Resource
6 "document_id": "21bff753-f48b-4ebb-b0bc-ae21461000f4",
7 "document_type": "Draft return",
8 "document_type_id": "DRAFT_RETURN"
9 }
10}

job.document.removed

Occurs when a document is removed from a job.

event_type
job.document.removed
data
  • job : The Job Resource as specified in the Job Resource page.
  • document_id : The ID of the document that was added.
  • document_type: The type of the document that was added.
  • document_type_id: The ID of the document type.

Sample

Copied
1{
2 //...
3 "event_type": "job.document.removed",
4 "data": {
5 "job": {} // The Job Resource
6 "document_id": "21bff753-f48b-4ebb-b0bc-ae21461000f4",
7 "document_type": "Draft return",
8 "document_type_id": "DRAFT_RETURN"
9 }
10}

job.transferred.provider

Occurs when a job is transferred to a different Tax Pro.

event_type
job.transferred.provider
data
  • job : The Job Resource as specified in the Job Resource page.
  • reason : A string with a short description explaining why the job was transferred to a new Tax Pro.

Sample

Copied
1{
2 //...
3 "event_type": "job.transferred.provider",
4 "data": {
5 "job": {} // The Job Resource
6 "reason": "Tax Pro couldn't complete services"
7 }
8}

job.scope_change.pending_client_approval

Occurs when a job scope change request is pending client approval.

event_type
job.scope_change.pending_client_approval
data
  • job : The Job Resource as specified in the Job Resource page.
  • job_scope_change : The Job scope requested

Sample

Copied
1{
2 //...
3 "event_type": "job.scope_change.pending_client_approval",
4 "data": {
5 "job": {}, // The Job Resource
6 "job_scope_change": {
7 "id": "60b0888a-2ab2-490b-bfc2-ecdc365e7e71",
8 "job_id": "65b332cc-bbe6-4f0a-831a-14c5e7e402dc",
9 "created_by_user_id": "7628012a-d5e0-45b8-bc0d-72ebce39f836",
10 "create_time": "2022-12-09T06:48:15.672362Z",
11 "items": [
12 {
13 "name": "1040NR",
14 "quantity": 1,
15 "price": 20.3
16 }
17 ]
18 }
19 }
20}

job.scope_change.accepted

Occurs when a job scope change request has been fully accepted.

event_type
job.scope_change.accepted
data
  • job : The Job Resource as specified in the Job Resource page.
  • job_scope_change : The Job scope requested

Sample

Copied
1{
2 //...
3 "event_type": "job.scope_change.accepted",
4 "data": {
5 "job": {}, // The Job Resource
6 "job_scope_change": {
7 "id": "60b0888a-2ab2-490b-bfc2-ecdc365e7e71",
8 "job_id": "65b332cc-bbe6-4f0a-831a-14c5e7e402dc",
9 "created_by_user_id": "7628012a-d5e0-45b8-bc0d-72ebce39f836",
10 "create_time": "2022-12-09T06:48:15.672362Z",
11 "items": [
12{
13 "name": "1040NR",
14 "quantity": 1,
15 "price": 20.3
16}
17 ]
18}
19}
20}

job.progress

Occurs when there is an update to the job's progress.

event_type
job.progress
data
  • job : The Job Resource as specified in the Job Resource page.

Sample

Copied
1{
2 //...
3 "event_type": "job.progress",
4 "data": {
5 "job": {} // The Job Resource
6 }
7}

job.consultation

Occurs when there is an update to the job's consultation.

event_type
job.consultation
data

Sample

Copied
1{
2 "id": "31e2f238-6fdb-4249-b3d0-628c064f3713",
3 "job_id": "501f599b-aaae-45fb-99b9-dfcdcc868c50",
4 "status": "PENDING_BOOKING",
5 "requested_minutes": 30,
6 "skip_scheduling": false,
7 "availabilities": [
8 {
9 "times": [
10 {
11 "start_time": "2024-09-19T17:30:00Z",
12 "end_time": "2024-09-19T20:00:00Z"
13 }
14 ],
15 "create_time": "2024-09-12T14:42:45.983241Z",
16
17 // The Pro booked the consultation initially
18 "booked_interval_time": {
19 "start_time": "2024-09-19T19:30:00Z",
20 "end_time": "2024-09-19T20:00:00Z"
21 },
22 "booked_time": "2024-09-12T14:43:04.343542Z",
23 "booked_by_user_id": "ad8b0c76-9c48-5550-8e17-1badb3e7524a"
24 },
25
26 // The Client rescheduled the consultation and is waiting the Pro to book a new time again
27 {
28 "times": [
29 {
30 "start_time": "2024-09-19T15:30:00Z",
31 "end_time": "2024-09-19T20:00:00Z"
32 }
33 ],
34 "create_time": "2024-09-12T14:43:16.282599Z"
35 }
36 ],
37 "client_user_id": "26a9636c-7b78-5bb3-bc59-9045c9d851a6",
38 "create_time": "2024-09-11T18:23:45.069451Z",
39 "cancel_time": null,
40 "cancel_reason": null,
41 "complete_time": null
42}
Last updated on September 12, 2024