Create
Create
Use this endpoint to create a Form WHT-436 (Vermont Quarterly Withholding Reconciliation) for an employer (payer). This return reports:
- Total gross wages and non-wage payments paid
- Vermont income tax withheld
- Child care contribution details
- Health care contribution details
Key points:
-
Employers are required to file Form WHT-436 for each quarter, even if no taxes were withheld.
-
Refer to Form HC-1 worksheet to calculate the values for L11AdjFTE (Adjusted Full-Time Equivalent Employees) and L12TotHealthCareDue (Total Health Care Contribution Due)
POST StateFilings/VTWH/Create Request Body
| Field | Type | Description |
|---|---|---|
| StateWHRecords | Object[] | Array of objects to create Form WHT-436. |
| SequenceId | String | A unique number given by an inbound application to identify failed records. Size Range: ..10 |
| ReturnHeader | Object | Identifies the supporting details of Form WHT-436. |
| Qtr | String | The quarter for which Form WHT-436 needs to be filed.Allowed values"Q1", "Q2", "Q3", "Q4" |
| TaxYr | String | The tax year for which Form WHT-436 needs to be filed.Allowed values"2026", "2026" |
| BusinessId | String | Optional Use the unique BusinessId (generated by TaxBandits) received in the Business CREATE response. If you do not have a BusinessId, ignore this field. |
| Business | Object | The details of the business you're filing for. |
| BusinessNm | String | Name of the business. Size Range: ..75 |
| PayerRef | String | Optional A unique identifier for each payer. This identifier can be used in future API references. Size Range: ..50 |
| TradeNm | String | Optional Name under which the business operates. Size Range: ..75 |
| IsEIN | Boolean | When true, identifies the business with an EIN. |
| EINorSSN | String | When IsEIN is true, provide the Employer Identification Number (EIN). When false, provide Social Security Number (SSN). Size Range: 9-11 |
| String | Email address of the business. Size Range: ..100 | |
| IsForeign | Boolean | When true, identifies the business as having a foreign address. |
| USAddress | Object | If IsForeign is false, pass the US address of the business. |
| Address1 | String | Employer/Payer's US address (street address or post office box). Size Range: ..46 |
| Address2 | String | Optional Employer/Payer's suite or apartment. Size Range: ..46 |
| City | String | Employer/Payer's city. Size Range: ..50 |
| State | String | Employer/Payer's state. Size Range: 2 Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" |
| ZipCd | String | Employer/Payer's zip code. Size Range: 5..10 |
| ForeignAddress | Object | If IsForeign is true, pass the foreign address of the business. |
| Address1 | String | Employer/Payer's foreign address (street address or post office box). Size Range: ..50 |
| Address2 | String | Optional Employer/Payer's suite or apartment. Size Range: ..50 |
| City | String | Employer/Payer's city. Size Range: ..50 |
| ProvinceOrStateNm | String | Employer/Payer's province or state name. Size Range: ..50 |
| Country | String | Employer/Payer's country. 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" |
| PostalCd | String | Employer/Payer's postal code. Size Range: ..16 |
| ReturnData | Object | Identifies the Form WHT-436 return data. |
| FormWHT436 | Object | Object containing Vermont WHT-436 form fields. |
| WHIdNum | String | Vermont withholding ID number. Size Range: ..8 |
| NumOfEmployees | Object | Object containing the count of employees. |
| FullTimeEmployees | Number | Number of full-time employees for the quarter. Size Range: 0-999999 |
| PartTimeEmployees | Number | Number of part-time employees for the quarter. Size Range: 0-999999 |
| L1GrossWages | Number | Total gross wages paid for the quarter. Size Range: 0-9999999999.99 |
| L2TaxWH | Number | Vermont income tax withheld on wages for the quarter. Size Range: 0-9999999999.99 |
| L3NonWagePayment | Number | Total non-wage payments subject to Vermont withholding. Size Range: 0-9999999999.99 |
| L4NonWageWH | Number | Vermont tax withheld on non-wage payments. Size Range: 0-9999999999.99 |
| L5TotTaxWh | Number | Total Vermont tax withheld (wages and non-wages combined). Size Range: 0-9999999999.99 |
| L6IsNoChildCareContrib | Boolean | If true, identifies that there is no child care contribution for this quarter. |
| L7ChildCareWages | Number | Total child care wages paid for the quarter. Size Range: 0-9999999999.99 |
| L8ContribDue | Number | Child care contribution amount due for the quarter. Size Range: 0-9999999999.99 |
| L9EmployeeChildCare | Number | Employee child care contribution withheld for the quarter. Size Range: 0-9999999999.99 |
| L10IsNoHealthCareContrib | Boolean | If true, identifies that there is no health care contribution for this quarter. |
| L11AdjFTE | Number | Adjusted full-time equivalent employees for the quarter. Size Range: 0-999999 |
| L12TotHealthCareDue | Number | Total health care contribution due for the quarter. Size Range: 0-9999999999.99 |
| L13TaxDue | Number | Total tax due for the quarter. Size Range: 0-9999999999.99 |
| L14TotTaxDeposit | Number | Total tax deposited for the quarter. Size Range: 0-9999999999.99 |
| L15Refund | Number | Overpayment/refund amount for the quarter. Size Range: 0-9999999999.99 |
| L16BalanceDue | Number | Net balance due after deposits. Size Range: 0-9999999999.99 |
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | Unique identifier of a submission. |
| SuccessRecords | Object[] | Detailed information about the successfully processed Form WHT-436 records. |
| SequenceId | String | Returns the unique reference ID for the submission that can be used to identify a particular record. |
| BusinessId | Guid | Unique identifier of a Business. |
| PayerRef | String | Unique identifier of the payer. |
| RecordId | Guid | A unique identifier generated by TaxBandits when a WHT-436 return is created. |
| FormType | String | Denotes the type of withholding form (Form WHT-436). |
| Status | String | Returns the record status of the return. |
| StatusTs | String | Date and time when the return was created. |
| Info | String | Returns additional information about the return. |
| Errors | Object[] | Shows error information for state returns of Form WHT-436. |
| Id | String | Returns the validation error Id. |
| Name | String | Name of the validation error. |
| Message | String | Description of the validation error. |
| ErrorRecords | Object[] | Detailed information about error records of Form WHT-436. |
| SequenceId | String | A unique reference ID for the submission that can be used to identify a particular record. |
| RecordId | Guid | Unique identifier of the record. |
| Errors | Object[] | Shows detailed error information. |
| Id | String | Returns the validation error Id. |
| Name | String | Name of the validation error. |
| Message | String | Description of the validation error. |
| Errors | Object[] | Shows detailed error information. |
| Id | String | Returns the validation error Id. |
| Name | String | Name of the validation error. |
| Message | String | Description of the validation error. |
Request JSON
{
"StateWHRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q1",
"TaxYr": "2026",
"Business": {
"BusinessNm": "Vertex Construction LLC",
"IsEIN": true,
"EINorSSN": "45-1254875",
"BusinessType": "PART",
"SigningAuthority": {
"Name": "Natalie Zimmerman",
"Phone": "7132153151",
"BusinessMemberType": "OWNER"
},
"IsForeign": false,
"USAddress": {
"Address1": "101 N 14th St",
"Address2": "Suite 500",
"City": "Richmond",
"State": "VA",
"ZipCd": "23219"
}
}
},
"ReturnData": {
"SequenceId": "001",
"FormWHT436": {
"WHIdNum": "WHT-56987545",
"NumOfEmployees": {
"FullTimeEmployees": "50",
"PartTimeEmployees": "50"
},
"L1GrossWages": 10000,
"L2TaxWH": 1000,
"L3NonWagePayment": 2500,
"L4NonWageWH": 1500,
"L5TotTaxWh": 2500,
"L6IsNoChildCareContrib": false,
"L7ChildCareWages": 5000,
"L8ContribDue": 22,
"L9EmployeeChildCare": 5,
"L10IsNoHealthCareContrib": false,
"L11AdjFTE": 2,
"L12TotHealthCareDue": 2500,
"L13TaxDue": 5022,
"L14TotTaxDeposit": 4000,
"L15Refund": 0,
"L16BalanceDue": 1022
}
}
}
]
}
Response JSON
- 200
- 401
Success Response - This is a sample response for successful API requests.
{
"StatusCode": "200",
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"SubmissionId": "019c706b-d45f-70f8-a2ce-8ccac111ea6f",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "620c73f3-aed2-4630-9e42-bcebddbc7fda",
"PayerRef": "Snow1546ty",
"RecordId": "019c706b-d5bd-718a-944a-4e1718a5b380",
"FormType": "VTWH436",
"Status": "UPDATED",
"StatusTs": "2026-02-18 06:04:01 -05:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": null,
"Errors": null
}
Unauthorized Response - You'll get the below response when your API requests don't contain valid authentication credentials.
{
"StatusCode": 401,
"StatusMessage": "Unauthorized",
"StatusName": "Invalid authorization credentials",
"Errors": [
{
"Id": "AUTH-100018",
"Name": "Authorization",
"Message": "JWT EXPIRED"
}
]
}