RequestByEmail
RequestByEmail
This is a payer-initiated method where the API sends a secure, personalized email to each payee with a unique URL to complete Form W-8BEN online. Each URL is scoped to that specific payee.
This method is useful when you already have a list of foreign individual payees and want TaxBandits to send the form request email on your behalf.
When to use
- You have the complete list of foreign individual payees and their email addresses on file.
- You want each payee to receive a personalized email invitation with available details pre-filled.
- You prefer TaxBandits to handle email delivery rather than sending the request through your own system.
- You need to collect Form W-8BEN before determining withholding and reporting requirements for U.S.-source payments.
If recipients are more likely to respond to an SMS, use RequestByText instead.
How it works
Authenticate
Obtain a Bearer token via the OAuth 2.0 flow and include it in all request headers.
Ensure a business (payer) exists
Before calling this endpoint, confirm the payer has been created using the Business endpoint. If no
BusinessIdis provided in the request, the request will be associated with the default payer (the first payer created in your account).Call the endpoint
Along with the payer and recipient details, your request may include the following optional parameters:
DBAId / DBARef— Scope the URL to a specific DBA under the payer. The DBA name will appear as the requester on the form.Customization— Apply your logo and primary/secondary colors to brand the form page. Alternatively, pass aCustomizationIdgenerated from the PortalCustomization endpoint.EmailCustomization— Customizes the email sent to the recipient. You can apply your logo, primary/secondary colors, sender name, and sender email address, Email Subject, and Email body to brand the email. Alternatively, pass an EmailCustomizationId generated from the EmailCustomization endpoint.InterviewFlow— Set to TRUE to present the W-8BEN as a guided interview rather than a traditional form.PrefLang— Specify the language for the form. Recipients can also change their preferred language if needed. Supported languages: English, French, Spanish, German, Ukrainian, and Portuguese.IsReminderEnabled— Set automated reminders to recipients who haven’t completed their forms.
Automate TIN MatchingSet
IsTINMatchingto TRUE to automatically trigger IRS TIN Matching once the recipient submits their form.Recipient completes the form
TaxBandits sends the email request to the recipient. When the recipient opens the secure URL, they can complete, e-sign, and submit Form W-8BEN online.
Get notified
Once a recipient submits, you can receive notification through any of the following:
- Webhooks — Configure the Form W-8BEN Status Change webhook event to receive a payload with the recipient's name, TIN, address, and a link to download the completed form. Learn more
- Status endpoint — Poll the Status endpoint on demand to retrieve the current form status for a given recipient.
- Web messaging — Receive in-browser notifications when a recipient completes their form. Learn more
POST FormW8Ben/RequestByEmail Request Body
| Field | Type | Description |
|---|---|---|
| SubmissionManifest | object | SubmissionManifest provides brief information about submission and the services opted for. |
| IsReminderEnabled | Boolean | Optional When enabled, reminder emails are triggered if the withholding certificate is not completed |
| ReminderSchdDays | Number | Frequency of reminder emails sent to complete W-9/W-8 forms. |
| Requester | object | Collects the Requester identifier, i.e., TIN (or) Business ID/PayerRef generated by TaxBandits. If neither is supplied, the default Business will be assumed as the Requester. |
| BusinessId | Guid | Optional TaxBandits Unique Business Identifier. This ID is generated by TaxBandits after you create a business in your account using the Business endpoint. If you do not provide the BusinessId in the request, then the URL will be generated against the default business, i.e., the first business created in your account. |
| PayerRef | String | OptionalCollects the Requester identifier, i.e., TIN (or) Business ID/PayerRef generated by TaxBandits. If neither is supplied, the default Business will be assumed as the Requester. |
| TIN | String | Optional Taxpayer Identification Number. Use this as an alternate for BusinessId. (Values: EIN, SSN) Size Range: 9-11 Allowed values"EIN", "SSN" (Including hyphen) |
| DBAId | String | OptionalUnique Identifier for the DBA. |
| DBARef | String | OptionalA Unique identifier for each DBA. This identifier can be used in future references for the DBA in the API. Size Range: 1-50 |
| Recipients | object[] | Collects the recipient's unique identifier and other basic information that will be pre-filled on the Form. |
| PayeeRef | String | Optional A unique identifier for each recipient completing the Form W-8BEN for future reference. Size Range: 1-50 |
| Name | string | Name of the recipient. Size Range: ..40 |
| string | Email Address of the recipient. This is the email address to which the W-8BEN request email will be sent. Size Range: ..100 | |
| 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. |
| CustomizationId | Guid | Optional A unique identifier generated by TaxBandits upon completing the portal customization in the Developer Console, or returned in the response from the PortalCustomization/Create endpoint. |
| EmailCustomizationId | Guid | Optional A unique identifier generated by TaxBandits upon completing the email customization in the Developer Console, or returned in the response from the EmailCustomization/Create endpoint. |
| Customization | Object | Optional Collects the customizations like TIN service, Business Logo and Callback URLs. |
| BusinessLogoUrl | String | Optional Gets the Business Logo. If given the business logo will be shown in the Iframe page. Size Range: ..150 |
| LogoPosition | String | Optional Optional The position where your business logo will be placed on the page.Allowed values"LEFT", "CENTER", "RIGHT" |
| InterviewFlow | Boolean | Optional As an alternative to direct-form entry, provide your recipients with an interview-style W-9/W-8 completion. |
| PrimaryColor | String | Optional The color theme of the iframe page will be customized with this primary color. |
| SecondaryColor | String | Optional The color theme of the iframe page will be customized with this secondary color. |
| PrefLang | String | OptionalLanguage Preference of the formAllowed values"en-US", "es-ES", "fr-FR","de-DE","uk-UA","pt-PT" |
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | 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. |
| FirstNm | String | First Name of the Individual Size Range: ..20 |
| MiddleNm | String | Middle Name of the Individual Size Range: ..20 |
| LastNm | String | Last Name of the Individual Size Range: ..20 |
| Suffix | String | Suffix of the Individual Allowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| TINType | String | TIN Type of the Requester. |
| TIN | String | Taxpayer Identification Number of the requester. |
| FormW8BENRecords | Object | Details of Form W-8BEN requests given in the request. |
| SuccessRecords | Object | Recipients with no error in the request |
| PayeeRef | String | Unique identifier of the recipient. |
| String | Email Address of the recipient to which W-8BEN request was sent. | |
| W8BENStatus | String | Status of the W-8BEN. |
| StatusTs | String | Timestamp of the W-8BEN status. |
| ErrorRecords | Object | Details of the recipients with errors. |
| PayeeRef | String | An unique identifier of a recipient. |
| String | 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[] | There are a variety of errors in the request. Some of the errors listed under this object are,
|
Request JSON
- Sample 1
- Sample 2
- Sample 3
- Sample 4
- Sample 5
{
"SubmissionManifest": {
"IsReminderEnabled": true,
"ReminderSchdDays": 10
},
"Requester": {
"BusinessId": null,
"TIN": "23-0420932",
"DBAId": "dfb13337-f49b-42fb-b989-07c674a7b81c",
"DBARef": "#001",
"PayerRef": "Payer1"
},
"Recipients": [
{
"PayeeRef": "Pay123",
"Name": "Mark Davis",
"Email": "mark@sample.com"
}
],
"WebhookRef": "2E9C7CA0-F0CF-4257-99AA-7FD6CCFD9D4"
}
Send W-8BEN email requests to recipients by giving the Business TIN (Requester) and recipients information.
{
"SubmissionManifest": {
"IsReminderEnabled": true,
"ReminderSchdDays": 10
},
"Requester": {
"BusinessId": "00000000-0000-0000-0000-000000000000",
"TIN": "22-2222222"
},
"Recipients": [
{
"PayeeRef": "8987844654654654",
"Name": "Allen Smith",
"Email": "mark@sample.com"
}
],
"WebhookRef": "2E9C7CA0-F0CF-4257-99AA-7FD6CCFD9D4"
}
Send W-8BEN email requests to recipients without Requester information (BusinessId or TIN). The recipients will be tied to the default business.
{
"SubmissionManifest": {
"IsReminderEnabled": true,
"ReminderSchdDays": 10
},
"Requester": null,
"Recipients": [
{
"PayeeRef": "8987844654654654",
"Name": "Allen Smith",
"Email": "mark@sample.com"
}
],
"WebhookRef":"2E9C7CA0-F0CF-4257-99AA-7FD6CCFD9D4"
}
Send W-8BEN email requests to recipients by giving the BusinessId (Requester) and recipients information. Make sure the Form W-8BEN Status Change webhook is configured.
{
"Requester": {
"BusinessId": "dfb13337-f49b-42fb-b989-07c774a7b81c"
},
"Recipients": [
{
"PayeeRef": "ER001",
"Name": "Mark Davis",
"Email": "mark@sample.com"
}
]
}
Request by Email for Form W8-BEN with Payer Reference and opt for Customization
{
"SubmissionManifest": {
"IsReminderEnabled": true,
"ReminderSchdDays": 10
},
"Requester": {
"BusinessId": null,
"PayerRef": "Pay025",
"TIN": "865923062",
"DBAId": null,
"DBARef": null
},
"Recipients": [
{
"PayeeRef": "Payee124",
"Name": "Shawn Williams",
"Email": "williams@sample.com"
}
],
"WebhookRef": "2E9C7CA0-F0CF-4257-99AA-7FD6CCFD9D4",
"EmailCustomizationId": "97db0874-e749-48d6-b96f-de6447d03667",
"CustomizationId": null,
"Customization": {
"InterviewFlow": true,
"BusinessLogoUrl": "https://www.spanenterprises.com/Content/Images/span.png",
"LogoPosition": "RIGHT",
"PrimaryColor": "#27E421",
"SecondaryColor": "#27E421",
"PrefLang": "es-ES"
}
}
Response JSON
- 200
- 400
- 401
Success Response - This is a sample response for successful API requests.
{
"SubmissionId": "b78e2c23-bfa2-49e2-bf2a-f2141dbfa61c",
"Requester": {
"BusinessId": "c2a7f62d-ca28-49ae-ac74-cf8b69486545",
"PayerRef": "Payer1",
"BusinessNm": "Snowdaze LLC",
"TINType": "EIN",
"TIN": "34-9058095",
"DBAId": "0f51f0c9-ecb4-476b-b48a-976eacbaed2a",
"DBARef": "3212"
},
"FormW8BenRecords": {
"SuccessRecords": [
{
"PayeeRef": "9566647097",
"Email": "mark@sample.com",
"W8BenStatus": "ORDER_CREATED",
"StatusTs": "2024-04-05 11:50:21 -04:00"
}
],
"ErrorRecords": null
},
"Errors": null
}
Bad Request Response - You'll get the below response when your API requests contain any validation errors.
{
"SubmissionId": "9401ebda-ee98-420a-bdbe-a0b231e214e1",
"Requester": {
"BusinessId": "d2495f20-b809-41f9-b323-2da251749d9d",
"PayerRef": null,
"BusinessNm": "SnowDaze LLC",
"FirstNm": null,
"MiddleNm": null,
"LastNm": null,
"Suffix": null,
"TINType": "EIN",
"TIN": "32-2764877",
"DBAId": null,
"DBARef": null
},
"FormW8BenRecords": {
"SuccessRecords": null,
"ErrorRecords": [
{
"PayeeRef": "Pe7698",
"Email": null,
"Errors": [
{
"Id": "F75-100031",
"Name": "Recipients.Email[0]",
"Message": "Email address is required"
}
]
}
]
},
"Errors": null
}
Unauthorized Response - You'll get the below response when your API requests don't contain valid authentication credentials.
{
"StatusCode": 401,
"StatusName": "Unauthorized",
"StatusMessage": "Invalid authorization credentials",
"Errors": [
{
"Id": "AUTH-100025",
"Name": "Authorization",
"Message": "Authorization should not be empty"
}
]
}