Webhook
Webhooks notify your system whenever there is a status update on a recipient’s Form W-9 submission. The webhook payload includes key data such as the recipient’s name, address, TIN, and a secure download link for the completed form.
For detailed information, Click here.
Configure the Webhook for W-9 Status
-
Log in to the developer console.
- Sandbox: sandbox.taxbandits.com
- Live: console.taxbandits.com
-
Navigate to Settings >> Webhooks.
-
Click ‘Add Webhook’. Choose the event type as ‘Form W-9 Status Change’.


- Enter your Callback URL where you want to receive notifications and click Save. You can add up to 5 Webhook URLs and choose the Callback URL to which the webhook response needs to be posted.
Note:-
Upon saving a webhook in TaxBandits, a unique Webhook Reference (GUID) is generated for each Callback URL you register.
-
Store these Webhook References on your end. When making API requests (e.g., to the FormW9/RequestByUrl endpoint), you can specify the preferred Callback URL by including the corresponding WebhookRef in the request JSON.
-
The WebhookRef node is optional. If you provide a WebhookRef, the webhook notifications for that request will be sent to the Callback URL tied to the specified Webhook Reference.
-
If you do not specify a WebhookRef, webhook notifications will be sent to your default Callback URL (usually Callback URL 1).
-
Ensure your callback URL is valid and publicly accessible. Upon saving, the API sends a sample JSON payload to your callback URL.
-
Your server must respond with HTTP status code 200 to keep the webhook active.
-
If your callback URL does not return HTTP 200, the webhook will become inactive. You can retry posting sample data to reactivate it.
-
By default, the webhook response will include the recipient’s TIN. If you prefer not to include the TIN, you can adjust this preference in the console. See how
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | A Unique identifier of a submission |
| WebhookRef | Guid |
|
| Requester | object | Requester information. |
| BusinessId | Guid | A Unique identifier of a business |
| BusinessNm | String | Requester Name. If the requester is a Business, then the Business Name will be returned. If the requester is an Individual, then the Payer’s full name will be returned. |
| FirstNm | string | First Name of the Individual |
| MiddleNm | string | Middle Name of the Individual |
| LastNm | string | Last Name of the individual |
| Suffix | string | Suffix of the Individual |
| TINType | string | TIN Type of the Requester. |
| TIN | string | Taxpayer Identification Number of the requester. |
| DBAId | Guid | Unique Identifier for the DBA. |
| DBARef | Guid | Unique identifier for each DBA. This identifier can be used in future references of the DBA in the API |
| PayeeRef | string | A Unique identifier of the recipient |
| W9Status | string | RecordStatus Status of the W-9 |
| StatusTs | string | Timestamp of the W-9 Status. |
| TINMatching | Object | TIN Matching information. |
| Status | String | TIN Matching status. |
| StatusTs | String | Timestamp of the TIN Matching Status. |
| StatusMsg | String | Status message of the TIN Matching. |
| Errors | object[] | Shows the detailed error message. |
| FormW9RequestType | string | Form W-9 requested Type.
|
| PdfUrl | string | URL to download the completed W-9. Note: This URL will expire in 24 hours. |
| string | Email address of the recipient. This is the email to which the W-9 request was sent.(The value will be null if the Form W-9 was requested using the RequestByUrl method). | |
| FormData | object | Form W-9 details of the recipient. |
| Line1Nm | string | Name as shown on the income tax return. |
| Line2Nm | string | Business name/disregarded entity name, if different from Line1 Name. |
| FirstNm | string | First Name of the Individual |
| MiddleNm | string | Middle Name of the Individual |
| LastNm | string | Last Name of the individual |
| Suffix | string | Suffix of the Individual |
| TINType | string | TIN type of the recipient |
| TIN | string | Recipient’s TIN. |
| Address | object | Recipient’s complete address |
| Address1 | string | Recipient’s Address 1 (street address or post office box of that locality). This will be pre-filled on the Form. |
| Address2 | string | Recipient’s Address 2 (suite or apartment number). This will be pre-filled on the Form. |
| City | string | Recipient’s City |
| State | string | Recipient’s State |
| ZipCd | string | Recipient’s Zip Code |
| AccountNum | string | Recipient’s account number. You can use this field to enter any identification number you have for the recipient. |
| FederalTaxClassification | string | U.S. Federal Tax Classification of the person whose name is entered on line 1 |
| IsLine3b | Boolean | If TRUE, identifies that the recipient is
|
| ExemptPayeeCd | string | This code identifies recipients that are exempt from backup withholding. |
| ExemptFromFATCA | string | This code identifies recipients that are exempt from reporting under FATCA. |
| IsBackUpWH | Boolean | When true, identifies the recipient is subject to backup withholding. The completed Form W-9 PDF will have the item 2 under Part II crossed out. When false, identifies the recipient is not subject to backup withholding. |
| Errors | Object[] | Detailed error information. |
| Id | string | Error ID number. This ID is assigned by TaxBandits and it is unique for each error. |
| Name | string | Name of the errored node. |
| Message | string | Shows the error message |
Scenario 1: Recipient completes Form W-9, status changes to ‘Completed and TIN Matching In Progress’. You receive a webhook notification with the status update. PdfUrl is included to download the completed form.
{
"SubmissionId": "75838ff2-8e57-49eb-8fa0-3d8d7ca4c006",
"WebhookRef":"99db0874-e749-48d6-b96f-de6447d03667",
"Requester": {
"BusinessId": "7b0e44d7-17f1-4dc8-87a2-5e4d18b10929",
"PayerRef": "Pay140054",
"BusinessNm": "Snowdaze LLC",
"FirstNm": null,
"MiddleNm": null,
"LastNm": null,
"Suffix": null,
"TINType": "EIN",
"TIN": "86-5923037",
"DBAId": null,
"DBARef": null
},
"PayeeRef": "pay2147",
"RecipientId": "17c639fe-14f2-46ca-9e74-a510a47eb1d5",
"W9Status": "COMPLETED_AND_TIN_MATCH_INPROGRESS",
"StatusTs": "2024-07-30 05:04:35 -04:00",
"TINMatching": {
"Status": "ORDER_CREATED",
"StatusTs": "2024-07-30 05:04:36 -04:00",
"StatusMsg": null,
"Errors": null
},
"FormW9RequestType": "URL_API",
"PdfUrl": "https://s3.amazonaws.com/taxbandits-sb-api/7cc37d30-d645-408d-986f-6ee79b91adfc.Pdf",
"Email": null,
"FormData": {
"Line1Nm": "michal k william Jr",
"Line2Nm": null,
"FirstNm": "michal",
"MiddleNm": "k",
"LastNm": "william",
"Suffix": "Jr",
"TINType": "SSN",
"TIN": "665-74-5684",
"Address": {
"Address1": "71 SAINT NICHOLAS DR",
"Address2": null,
"City": "NORTH POLE",
"State": "AK",
"ZipCd": "99705-7752"
},
"AccountNum": "42526325",
"FederalTaxClassification": "Individual or Sole proprietor or Single-member LLC",
"IsLine3b": false,
"ExemptPayeeCd": null,
"ExemptFromFATCA": null,
"IsBackUpWH": false
},
"Errors": null
}
Scenario 2: Recipient completes Form W-9, status changes to ‘Completed with successful TIN Matching’. Webhook notifies your system. PdfUrl included for download.
{
"SubmissionId": "75838ff2-8e57-49eb-8fa0-3d8d7ca4c006",
"WebhookRef": null,
"Requester": {
"BusinessId": "7b0e44d7-17f1-4dc8-87a2-5e4d18b10929",
"PayerRef": "Pay140054",
"BusinessNm": "Snowdaze LLC",
"FirstNm": null,
"LastNm": null,
"MiddleNm": null,
"Suffix": null,
"TINType": "EIN",
"TIN": "XX-XXX3037",
"DBAId": null,
"DBARef": null
},
"PayeeRef": "pay2147",
"RecipientId": "17c639fe-14f2-46ca-9e74-a510a47eb1d5",
"W9Status": "COMPLETED",
"StatusTs": "2024-07-30 05:19:49 -04:00",
"TinMatching": {
"Status": "SUCCESS",
"StatusTs": "2024-07-30 05:19:48 -04:00",
"StatusMsg": null,
"Errors": null
},
"FormW9RequestType": "URL_API",
"PdfUrl": "https://s3.amazonaws.com/taxbandits-dev-api/7cc37d30-d645-408d-986f-6ee79b91adfc.Pdf",
"Email": null,
"FormData": {
"Line1Nm": null,
"Line2Nm": null,
"FirstNm": "michal",
"LastNm": "william",
"MiddleNm": "k",
"Suffix": "Jr",
"TINType": "SSN",
"TIN": "665-74-5684",
"Address": {
"Address1": "71 SAINT NICHOLAS DR",
"Address2": null,
"City": "NORTH POLE",
"State": "AK",
"ZipCd": "99705-7752"
},
"AccountNum": "42526325",
"FederalTaxClassification": "Individual or Sole proprietor or Single-member LLC",
"IsLine3b": false,
"ExemptPayeeCd": null,
"ExemptFromFATCA": null,
"IsBackUpWH": false,
"OtherDescription": null
},
"Errors": null
}
Scenario 3: Recipient completes Form W-9, status changes to Invalid due to TIN Matching failure. Webhook notification sent. PdfUrl still provided for reference.
{
"SubmissionId": "4a36dc14-f059-4c89-83cd-ff9e350ed0a0",
"WebhookRef": null,
"Requester": {
"BusinessId": "7746f0cd-e8eb-4428-9240-12ea84160ee8",
"BusinessNm": "Snowdaze LLC",
"TINType": "EIN",
"TIN": "22-2222222"
},
"PayeeRef": "Pe123451234",
"W9Status": "Invalid",
"StatusTs": "2021-02-19 14:36:28 -04:00",
"TINMatching": {
"Status": "Failed",
"StatusTs": "2021-06-10 07:16:01 -04:00",
"StatusMsg": null,
"Errors": null
},
"FormW9RequestType": "URL_API",
"PdfUrl": "https://taxbandits-sb-api.s3.amazonaws.com/sample/807f0318-7f5a-4841-9c08-a88b4bf7e7d9.pdf",
"Email": "sample@bodeem.com",
"FormData": {
"Line1Nm": "ABC Inc",
"Line2Nm": null,
"TINType": "EIN",
"TIN": "11-1111111",
"Address": {
"Address1": "123 E. Main St",
"Address2": "Suite 400",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"AccountNum": "42526326",
"FederalTaxClassification": "C Corporation",
"IsLine3b": true,
"ExemptPayeeCd": "5",
"ExemptFromFATCA": "E"
},
"Errors": null
}
Scenario 4: The recipient has completed Form W-9 but has not provided the TIN, so the status has changed to ‘AWAITING_TIN_CERTIFICATE’. A reminder will be sent via Webhook before the expiration date. PdfUrl is provided to download the completed Form W-9.
{
"SubmissionId": "75838ff2-8e57-49eb-8fa0-3d8d7ca4c006",
"WebhookRef": null,
"Requester": {
"BusinessId": "7b0e44d7-17f1-4dc8-87a2-5e4d18b10929",
"PayerRef": "Pay140054",
"BusinessNm": "Snowdaze LLC",
"FirstNm": null,
"LastNm": null,
"MiddleNm": null,
"Suffix": null,
"TINType": "EIN",
"TIN": "XX-XXX3037",
"DBAId": null,
"DBARef": null
},
"PayeeRef": "pay2147",
"RecipientId": "17c639fe-14f2-46ca-9e74-a510a47eb1d5",
"W9Status": "AWAITING_TIN_CERTIFICATE",
"ExpireDate": "07-30-2024",
"StatusTs": "2024-07-30 05:19:49 -04:00",
"TinMatching": null,
"FormW9RequestType": "URL_API",
"PdfUrl": "https://s3.amazonaws.com/taxbandits-dev-api/7cc37d30-d645-408d-986f-6ee79b91adfc.Pdf",
"Email": null,
"FormData": {
"Line1Nm": null,
"Line2Nm": null,
"FirstNm": "michal",
"LastNm": "william",
"MiddleNm": "k",
"Suffix": "Jr",
"TINType": "SSN",
"TIN": "665-74-5684",
"Address": {
"Address1": "71 SAINT NICHOLAS DR",
"Address2": null,
"City": "NORTH POLE",
"State": "AK",
"ZipCd": "99705-7752"
},
"AccountNum": "42526325",
"FederalTaxClassification": "Individual or Sole proprietor or Single-member LLC",
"IsLine3b": false,
"ExemptPayeeCd": null,
"ExemptFromFATCA": null,
"IsBackUpWH": false,
"OtherDescription": null
},
"Errors": null
}
Scenario 5: No reference ID has been passed in the WebhookRef node of the request. The recipient has completed Form W-9, has provided the ITIN and TIN Matching as true and Status is updated as ‘SUCCESS’. The payload will be posted to the default Callback URL, i.e., Callback URL 1.
{
"SubmissionId": "617140eb-7de8-4259-98ac-14776eef249b",
"WebhookRef":"99db0874-e749-48d6-b96f-de6447d03667",
"Requester": {
"BusinessId": "51cd2f9f-046c-47c4-988f-7f83c2bdd3ee",
"PayerRef": null,
"BusinessNm": "James Smith",
"FirstNm": "James",
"MiddleNm": null,
"LastNm": "Smith",
"Suffix": null,
"TINType": "SSN",
"TIN": "XXX-XX-6767",
"DBAId": null,
"DBARef": null
},
"PayeeRef": "Pe6999",
"RecipientId": "22971d38-4349-4ee0-9e1b-97ab82a740eb",
"W9Status": "COMPLETED",
"ExpireDate": null,
"StatusTs": "2025-10-12 00:37:23 -04:00",
"TINMatching": {
"Status": "SUCCESS",
"StatusTs": "2025-10-12 00:37:23 -04:00",
"StatusMsg": null,
"Errors": null
},
"FormW9RequestType": "URL_API",
"PdfUrl": "https://s3.amazonaws.com/taxbandits-dev-api/b0c4e691-89dd-45d9-8aab-160ae31eec0a.Pdf",
"Email": null,
"FormData": {
"Line1Nm": "Henry David",
"Line2Nm": "Technologic",
"FirstNm": "Henry",
"MiddleNm": null,
"LastNm": "David",
"Suffix": null,
"TINType": "ITIN",
"TIN": "XXX-XX-7734",
"Address": {
"Address1": "2603 Kinsey Road",
"Address2": "Main Street",
"City": "DOTHAN",
"State": "AL",
"ZipCd": "36303",
"Country": "US"
},
"AccountNum": null,
"FederalTaxClassification": "Individual or Sole proprietor or Single-member LLC",
"IsLine3b": false,
"ExemptPayeeCd": null,
"ExemptFromFATCA": null,
"IsBackUpWH": false
},
"Errors": null
}