Webhook
Webhooks are used to notify you regarding the status of W-9/W-8 completion by the recipients. The webhook payload includes W-9/W-8 data such as the recipient’s name, address, EIN/SSN, as well as the link to download the completed form.
For WhCertificate, you can add up to 5 Webhook URLs and choose the Callback URL to which the Webhook response needs to be posted.
To do that, store the unique reference we generate against each Callback URL at your end. Then, pass the reference in the request JSON. If the Webhook reference is not passed, we will post the Webhook response to the default Callback URL.
The webhook payload includes the recipient data, including the Name, Address, Country of citizenship, and TIN number, along with the link to download the completed Form W-9 or W-8BEN.
How does it work?
-
Log in to the developer console.
- Sandbox Console URL: sandbox.taxbandits.com
- Live Console URL: console.taxbandits.com
-
Then navigate to Settings >> Webhooks.
-
To add multiple webhook Callback URLs inside the console site, click on the Add Webhook button.
- On the Add Webhook pop-up, choose the Event Type as WhCertificate Status Change. Once you select the event type, you will have the option to add up to 5 webhook Callback URLs.
- Upon Saving, TaxBandits generates a unique Webhook Reference (GUID) against each Callback URL. Store these Webhook References at your end and pass them in the request JSON for us to post the webhook response to the corresponding Callback URL. If you don't pass one, the webhook response will be posted to the default Callback URL (Callback URL 1).
6.When you call the WhCertificate/RequestByUrl endpoint, you can mention the preferred Callback URL by sending the stored Webhook Reference to the node WebhookRef. The WebhookRef node is optional.
When a recipient completes the W-9/W-8BEN, the webhook will be posted to the Callback URL that is tied to the WebhookRef given in the request.
If you do not specify the WebhookRef in the request, then the webhook will be posted to the default Callback URL.
Request JSON with WebhookRef
Response Body
Field | Type | Description |
---|---|---|
FormType | String | Type of Form (W-9 or W-8BEN). |
WebhookRef | Guid |
|
FormW9 | Object | Contains Form W-9 Information. |
SubmissionId | Guid | A unique identifier of a submission. |
Requester | Object | Requester information. |
BusinessId | Guid | A unique identifier of the 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. |
TINType | String | TIN Type of the Requester. |
TIN | String | Taxpayer Identification Number of the requester. |
PayeeRef | String | A unique identifier of the recipient |
RecipientId | Guid | A unique ID generated by TaxBandits after the return is created and will be returned in the Response. You can use this ID for future reference to update. |
W9Status | String | 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. |
Errors | String | Shows the detailed error message. |
FormW9RequestType | String | Form W-9 requested Type.
|
PdfUrl | String | The 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 data 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 |
TINType | string | TIN type of the recipient. (Either EIN or SSN) |
TIN | string | Recipient’s TIN |
Address | Object | Recipient’s complete address |
Address1 | string | Recipient’s Address 1 (number, street) |
Address2 | string | Recipient’s Address 2 (apt. or suite no.) |
City | string | Recipient’s City |
State | string | Recipient’s State |
ZipCd | string | Recipient’s Zip Code Size Range: 5..10 |
FederalTaxClassification | string | U.S. Federal Tax Classification of the person whose name is entered on Line 1 |
ExemptPayeeCd | string | This code identifies the recipient is exempt from backup withholding |
ExemptFromFATCA | string | This code identifies recipients that are exempt from reporting under FATCA. |
IsBackUpWH | Boolean |
|
Errors | Object | Shows detailed error information. |
FormW8Ben | Object | Form W-8BEN Information. |
SubmissionId | Guid | A Unique identifier of a submission. |
Requester | Object | Requester information. |
BusinessId | Guid | A unique identifier of the business. |
BusinessNm | String | Business Name of the requester. If the requester is an Individual, then the Payer’s full name will be returned. |
TINType | String | TIN Type of the Requester. |
TIN | String | Taxpayer Identification Number of the requester. |
PayeeRef | String | A Unique identifier of the recipient |
W8BENStatus | String | Status of the W-8BEN. |
StatusTs | String | Timestamp of the W-8BEN Status. |
FormW8BENRequestType | String | Form W-8BEN requested Type.
|
PdfUrl | String | The URL to download the completed W-8BEN. Note: This URL will expire in 24 hours. |
String | Email Address of the recipient. This is the email to which the W-8BEN request was sent. The value will be null if the Form W-8BEN was requested using the RequestByURL method. | |
FormData | Object | Form W-8BEN data of the recipient. |
NmOfIndividual | string | Name of the Foreign Individual. |
CitizenOfCountry | string | Recipient country of citizenship. |
USTINType | string | TIN type of the recipient. (Either SSN or ITIN) |
USTIN | string | Recipient’s TIN |
ForeignTIN | string | Foreign TIN of the recipient. |
DOB | string | Date of Birth of the recipient |
PermanentAddress | Object | Recipient’s permanent address. |
Address | string | Recipient’s Address. |
City | string | Recipient’s City |
State | string | Recipient’s State |
Country | string | Recipient’s Country |
PostalCd | string | Recipient’s Zip Code |
MailingAddress | Object | Recipient’s mailing address. |
Address | string | Recipient’s Address. |
City | string | Recipient’s City |
State | string | Recipient’s State |
Country | string | Recipient’s Country |
PostalCd | string | Recipient’s Zip Code |
TaxTreatyBenefits | Object | Tax Treaty Benefits. |
BeneficiaryCountry | string | Country where the recipient claim to be a resident for income tax treaty purposes |
ClaimingProvArticlePara | string | Article and paragraph of the treaty benefits |
RateOfWH | string | Rate of Withholding. |
TypeOfIncome | string | Type of income for which recipient claims the treaty benefits. |
AdditionalConditions | string | Additional conditions from the tax treaty benefits. |
Signature | Object | Signature of the recipient. |
SignerNm | string | Name of the signer. |
CapacityInWhichActing | string | If the form is signed by an agent on the individual’s behalf, enter the capacity in which they are acting. |
Errors | Object | Shows detailed error information. Sample Webhook Response for W8Ben : |
Scenario 1:No reference ID passed in node WebhookRef of the request. The recipient has completed Form W-8BEN, and the status has been changed to “Completed.” The payload will be posted to the default Callback URL, i.e., Callback URL 1. PdfUrl is provided to download the completed W-8BEN.
{
"FormType": "W8Ben",
"WebhookRef": "7a7ddb71-a6ac-4312-ab09-7ad9a2b3507d",
"FormW9": null,
"FormW8Ben": {
"SubmissionId": "4a36dc14-f059-4c89-83cd-ff9e350ed0a0",
"Requester": {
"BusinessId": "7746f0cd-e8eb-4428-9240-12ea84160ee8",
"PayerRef": null,
"BusinessNm": "Snowdaze LLC",
"TINType": "EIN",
"TIN": "22-2222222"
},
"PayeeRef": "7484391234545",
"W8BENStatus": "COMPLETED",
"StatusTs": "2021-02-19 14:36:28 -05:00",
"FormW8BENRequestType": "URL_API",
"PdfUrl": "https://taxbandits-sb-api.s3.amazonaws.com/sample/807f0318-7f5a-4841-9c08-a88b4bf7e7d9.pdf",
"Email": "sample@bodeem.com",
"FormData": {
"NmOfIndividual": "Joseph Smith",
"CitizenOfCountry": "Canada",
"USTINType": "SSN",
"USTIN": "111-11-1111",
"ForeignTIN": null,
"DOB": "07/08/1990",
"PermanentAddress": {
"Address": "123 E. Main St",
"City": "Rock Hill",
"State": "SC",
"Country": "USA",
"ZipCd": "29730"
},
"MailingAddress": {
"Address": null,
"City": null,
"State": null,
"Country": null,
"ZipCd": null
},
"TaxTreatyBenefits": {
"BeneficiaryCountry": "Canada",
"ClaimingProvArticlePara": "VII",
"RateOfWH": "27.50",
"TypeOfIncome": "Royalties",
"AdditionalConditions": null
},
"Signature": {
"SignerNm": "Joseph",
"CapacityInWhichActing": "Guardian"
}
},
"Errors": null
},
"Errors": null
}
Scenario 2: No reference ID passed in node WebhookRef of the request. The recipient has completed Form W-9, and TIN Matching is in progress. The payload will be posted to the default Callback URL, i.e., Callback URL 1.
{
"FormType": "FormW9",
"WebhookRef": "7a7ddb71-a6ac-4312-ab09-7ad9a2b3507d",
"FormW9": {
"SubmissionId": "b870040d-fded-420b-b424-28bf0dd11261",
"Requester": {
"BusinessId": "fb6ddd28-ad30-4fc2-bd17-38a937f2aa81",
"PayerRef": null,
"BusinessNm": "Snowdaze LLC",
"TINType": "EIN",
"TIN": "XX-XXX2222"
},
"PayeeRef": "Pe123451234",
"RecipientId": "sdf3ccee-10d8-4eb4-ab81-234234c9636",
"W9Status": "COMPLETED_AND_TIN_MATCH_INPROGRESS",
"StatusTs": "2021-06-24 10:40:21 -04:00",
"TINMatching": {
"Status": "ORDER_CREATED",
"StatusTs": "2021-06-24 10:40:21 -04:00",
"StatusMsg": null,
"Errors": null
},
"FormW9RequestType": "Email_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": "XX-XXX1111",
"Address": {
"Address1": "123 E. Main St",
"Address2": "Suite 400",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"FederalTaxClassification": "C Corporation",
"ExemptPayeeCd": "5",
"ExemptFromFATCA": "F",
"IsBackUpWH": false
},
"Errors": null
},
"FormW8Ben": null,
"Errors": null
}