RequestByEmail
RequestByEmail
This is a payer-initiated method where you can use our API to send an email request containing a unique secure URL to each payee (recipient) for completing W-9/W-8 Forms.
How it works
1. OAuth 2.0 Authentication
As with any TaxBandits API call, begin by authenticating through the OAuth 2.0 flow to obtain an access token. This token must be included in the request header as a Bearer token. Refer to the OAuth 2.0 Authentication guide for details on JWT authentication and token handling.
2. Create Business
Before initiating a W-9/W-8 request, ensure at least one business (payer) has been created using the Business endpoint. This is a mandatory step.
3. Call the [POST] WhCertificate/RequestByEmail Endpoint
Your request must include the following:
- Authorization Header - Include the Bearer token obtained from OAuth.
- Payee Email Address - The form completion secure URL will be sent here.
- Payee Reference (Optional) - A unique ID for referencing the payee in future API calls.
- Payee Name and Address (Optional) - If included, this info will be pre-filled in the form.
- Business Identifier (Optional) - Provide the BusinessId or TIN to identify the payer associated with the request. If omitted, the form will be tied to the first business in your account.
- DBA Reference (Optional) - Used to display a specific DBA name as the requester on the form.
- Customizations (Optional) - You may include branding customization in the request, such as logo, theme colors, etc, and the redirection URLs where you want the payee to be redirected once they submit the form. You may also include a CustomizationId if you’ve generated one. Learn more
4. Payee completes the form
TaxBandits will send an email with a secure URL to the payee. Upon clicking the secure URL, the payee will be provided with the option to choose the Form W-9, W-8BEN, W-8BEN-E, or W-8ECI based on their citizenship and resident status. They can complete, e-sign, and submit the form.
5. Get notified
- Webhooks - If you’ve configured Webhooks for the event type 'WhCertificate Status Change Webhook', you will receive a webhook notification once the payee submits the form. The Webhook payload includes payee details (name, TIN, address) and a link to download the completed form. Learn more
- Status endpoint - Alternatively, you can also use the Status endpoint to retrieve the status.
- Web messaging - Instead of Webhooks, you can choose to receive notifications via web messaging. For more information, click here.
Automate TIN Matching
If you want to validate the TINs automatically once collected, you can set the IsTINMatching as TRUE in your request JSON.
POST WhCertificate/RequestByEmail Request Body
| Field | Type | Description |
|---|---|---|
| Requester | Object | Collects the Requester identifier TIN or TBS Business ID or PayerRef. If neither is provided, the default Business will be assumed as the Requester. |
| PayerRef | String | Optional A unique payer identifier assigned by you while requesting the payer information using the endpoint Business/RequestByURL. Size Range: 1-50 |
| BusinessId | Guid | Optional A unique business identifier generated by TaxBandits after you create a business in your account using the Business endpoint. If you do not provide a BusinessId in the request, the URL will be generated against the default business, i.e., the first business created in your account. |
| TIN | String | Optional Taxpayer Identification Number. Use this as an alternative for BusinessId or PayerRef. Size Range: 9-11. |
| Recipient | Object | Collects the recipient's unique identifier and other basic information that will be pre-filled on the Form. |
| PayeeRef | String | A unique identifier for each recipient completing the Form W-9. This identifier will be used in future references of the recipient. Size Range: 1-50 |
| Name | String | Optional Recipient Name. This will be pre-filled on the Form. Size Range: ..50 |
| String | Email address of the recipient. This is the email address to which the WhCertificate request email will be sent. * Size Range: 1-100* | |
| IsTINMatching | Boolean | Optional TIN Matching will be enabled when the value is set as true. Once the recipient completes Form W-9/W-8, TaxBandits will match the Recipient's Name and SSN with the IRS database and notify you via Webhooks. Allowed values: "true", "false" |
| WebhookRef | Guid | Optional A unique identifier of the Webhooks that TaxBandits generates against each Callback URL when adding it to the console site. If you pass the WebhookRef in the request JSON, we will 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. |
Response Body
| Field | Type | Description |
|---|---|---|
| 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 |
| PayerRef | Guid | A Unique identifier of the payer. |
| TINType | String | TIN Type of the Requester. |
| TIN | String | Taxpayer Identification Number of the requester. |
| WhCertificate | Object | Details of Withholding Certificate requests given in the request body. |
| SuccessRecords | Object | Recipients with no error in the request |
| PayeeRef | String | A Unique identifier of the recipient. |
| String | Email Address of the recipient to which W-9 request was sent. | |
| WhCertificate Status | String | Status of the WhCertificate |
| StatusTs | String | Timestamp of the WhCertificate status |
| ErrorRecords | Object | Details of the recipients with errors |
| PayeeRef | String | A Unique identifier of the recipient. |
| String | The email address of the recipient given in the request | |
| Errors | object[] | Collection of errors for the recipient |
| 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. |
| Errors | object[] | Collection of errors for the submissions. 'You should have at least one business in your account to request WhCertificate’ 2.‘Insufficient credits in the account’ |
| 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. |
Request JSON
{
"SubmissionManifest": {
"IsTINMatching": true
},
"Requester": {
"BusinessId": "9e284b90-aa98-4287-8e9a-38cc590a90d3",
"PayerRef":null,
"TIN": "092-11-5116"
},
"Recipients": [
{
"PayeeRef": "T@122",
"Name": "Jordan Henry",
"Email": "sample@bodeem.com"
},
{
"PayeeRef": "mia@345",
"Name": "Mia Harper",
"Email": "sample@bodeem.com"
}
],
"WebhookRef":"99db0874-e749-48d6-b96f-de6447d03667"
}
Response JSON
{
"SubmissionId": "2d1797a2-5e56-4da4-a59d-e82e858ffbd8",
"Requester": {
"BusinessId": "9e284b90-aa98-4287-8e9a-38cc590a90d3",
"BusinessNm": "Snowdaze LLC",
"PayerRef": "Pe12rtgr3",
"TINType": "SSN",
"TIN": "092-11-5116"
},
"WhCertificate": {
"SuccessRecords": [
{
"PayeeRef": "T@122",
"Email": "sample@bodeem.com",
"WhCertificateStatus": "ORDER_CREATED",
"StatusTs": "2022-06-14 07:05:18 +05:30"
},
{
"PayeeRef": "mia@345",
"Email": "sample@bodeem.com",
"WhCertificateStatus": "ORDER_CREATED",
"StatusTs": "2022-06-14 07:05:18 +05:30"
}
],
"ErrorRecords": null
},
"Errors": null
}