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.
-
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. This URL is encrypted by default. Follow these steps to decrypt the URL. If you'd like to have a decrypted URL by default, you can configure the preferences in Developer Console -> Settings -> W-9/W-8 Preferences. |
| 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 |
| Country | string | Recipient's country code. Refer to Static values. Size Range: 2 Allowed values"AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| 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. |
| IsDAExemptBroker | Boolean | When true, identifies the recipient is exempt from information reporting as a U.S. digital asset broker within the meaning of Regulations section 1.6045-1(g)(4)(i)(A)(1) |
| 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,
"IsDAExemptBroker": true
},
"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,
"IsDAExemptBroker": true,
"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": "2025-02-19 14:36:28 -04:00",
"TINMatching": {
"Status": "Failed",
"StatusTs": "2025-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,
"IsDAExemptBroker": true,
"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,
"IsDAExemptBroker": true,
},
"Errors": null
}