RequestByText
RequestByText
This is a payer-initiated method that allows you to send a text message containing a unique secure URL to each payee (recipient) for completing Form W-8BEN.
You are required to provide the recipient's phone number along with their country code. If no country code is provided, the default will be the US country code.
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-8BEN or other form request, ensure at least one business (payer) has been created using the Business endpoint. This is a mandatory step.
3. Call the [POST] FormW8BEN/RequestByText Endpoint
Your request must include the following:
- Authorization Header - Include the Bearer token obtained from OAuth.
- Recipient's Phone Number: The form completion secure URL will be sent via text.
- Recipient's Country Code: This is required to send the request via SMS. If no country code is provided, the default will be the US country code.
- 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. Recipient Completes the Form
TaxBandits will send a text message with a secure URL to the recipient. Once the recipient clicks the secure URL, they can complete the form, e-sign, and submit it.
5. Get notified
- Webhooks - If you’ve configured Webhooks for the event type 'Form W-8BEN Status Change', 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.
POST FormW8BEN/RequestByText Request Body
| Field | Type | Description |
|---|---|---|
| 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 | Guid | 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-9 for future reference. Size Range: 1-50 |
| Phone | String | The phone number of the recipient Size Range: 4-16 |
| CountryPhoneCode | String | Recipient’s country code. If not provided, the US will be selected by default. 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" |
| CustomizationId | Guid | Optional A unique customization identifier generated by TaxBandits after you complete the customization process in the Developer console or the unique ID you received in the response of the PortalCustomization CREATE Endpoint. endpoint. Note: You can customize the W-9/W-8 page (secure URL) with your own logo, favicon, and primary and secondary colors. |
| 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. |
| Phone | String | The phone number of the recipient |
| CountryPhoneCode | String | Recipient’s country code. |
| 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. |
| Phone | String | The phone number of the recipient |
| CountryPhoneCode | String | Recipient’s country code. |
| 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
{
"Requester": {
"BusinessId": null,
"PayerRef": "Payer1",
"TIN": "23-0420932",
"DBAId": "dfb13337-f49b-42fb-b989-07c774a7b81c",
"DBARef": "#001"
},
"Recipients": [
{
"PayeeRef": "Pay123",
"Name": "Mark Davis",
"CountryPhoneCode": "US",
"Phone": "5687657876"
}
]
}
{
"Requester": {
"BusinessId": "00000000-0000-0000-0000-000000000000",
"TIN": "22-2222222"
},
"Recipients": [
{
"PayeeRef": "8987844654654654",
"Name": "Allen Smith",
"CountryPhoneCode": "US",
"Phone": "5687657876"
}
]
}
{
"Requester": null,
"Recipients": [
{
"PayeeRef": "8987844654654654",
"Name": "Allen Smith",
"CountryPhoneCode": "US",
"Phone": "5687657876"
}
]
}
{
"Requester": {
"BusinessId": null,
"TIN": "23-0420932",
"DBAId": "dfb13337-f49b-42fb-b989-07c674a7b81c",
"DBARef": "#001",
"PayerRef": "Payer1"
},
"Recipients": [
{
"PayeeRef": "Pay123",
"Name": "Mark Davis",
"CountryPhoneCode": "US",
"Phone": "5687657876"
}
]
}
{
"Requester": {
"BusinessId": null,
"PayerRef": "Pay025",
"TIN": "865923062",
"DBAId": null,
"DBARef": null
},
"Recipients": [
{
"PayeeRef": "Payee124",
"Name": "Shawn Williams",
"CountryPhoneCode": "US",
"Phone": "5687657876"
}
],
"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",
"CountryPhoneCode": "US",
"Phone": "5687657876",
"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",
"CountryPhoneCode": null,
"Phone": null,
"Errors": [
{
"Id": "F75-100031",
"Name": "Recipients.Phone[0]",
"Message": "Phone 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"
}
]
}