Create
Create
Use this endpoint to generate a new withholding and UI form for the state of California. For California, there is a unique case, unlike other states, where the withholding and UI forms must be filed together (DE-9/DE-9C) for each quarter.
-
Form DE-9: Used to report quarterly payroll tax totals and reconcile employer contributions for UI, ETT, SDI, and PIT withholdings.
-
Form DE-9C: Used to report individual employee wage and withholding details for each worker during the quarter.
Both forms must be filed together quarterly, and employers must file even if no wages were paid during the quarter
POST StateFilings/CAWHUI/Create Request Body
| Field | Type | Description |
|---|---|---|
| StateWHUIRecords | Object [] | Object to create DE9/9Cs |
| 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 DE9/9C. |
| TaxYr | String | The tax year for which Form DE9/9C needs to be filed.Allowed values2025 |
| Qtr | String | The quarter for which the Form DE9/9C is to be filed.Allowed values"Q1", "Q2", "Q3", "Q4" |
| Business | Object | The details of the business you’re filing for. |
| BusinessId | String | Optional Use the unique BusinessId (Generated by TaxBandits) you received in the response of the Business CREATE Endpoint. If you do not have a BusinesId, ignore the field. By giving the BusinessId, you do not have to provide all the business information again. |
| BusinessNm | String | Name of the business. Size Range: ..75 |
| TradeNm | String | Optional Name under which the business operates. Size Range: ..75 |
| PayerRef | string | Optional A unique identifier for each payer completing their information. This identifier can be used in future references of the payer in the API. Size Range: ..50 |
| IsEIN | Boolean | When true, identifies the business with an EIN. |
| EINorSSN | String | Use Employer Identification Number (EIN). 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", etc. |
| 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", etc. |
| PostalCd | String | Employer/Payer’s postal code. Size Range: ..16 |
| ReturnData | Object[] | Identifies the Form DE9/9-C data. |
| FormDE9 | Object | California withholding/UI tax return. |
| AccNum | String | California withholding account number. Size Range: 8 Allowed values"99999999" |
| BranchCd | String | Branch Code is to identify a specific business location or branch under the given account number. Size Range:..3 Allowed values"999" |
| IsNoWageReported | Boolean | If true identifies that no wages have been paid for the quarter |
| IsNoEmpOrBusienssClosed | Boolean | If true identifies that the business has ceased operations or had no employees during that quarter. |
| BusinessClosedDt | String | Date on which business has ceased operations or had no employees during that quarter. Enter the date in a valid format MM/DD/YYYY or MM-DD-YYYY or M/D/YYYY or M-D-YYYY |
| TaxableWages | Number | Total subject wages paid for the quarter. Size Range: 0-9999999999.99 |
| UIRate | Number | Unemployment Insurance (UI) rate Size Range: 0 -100 |
| UITaxableWagesAmt | Number | Unemployment Insurance (UI) wages for the quarter Size Range: 0-9999999999.99 |
| TotUIContribAmt | Number | Employer's contributions on Unemployment Insurance for the quarter Size Range: 0-9999999999.99 |
| TotETTContribAmt | Number | Employer's contributions on Employment Training Tax for the quarter Size Range: 0-9999999999.99 |
| SDITaxableWagesAmt | Number | State Disability Insurance (SDI) wages for the quarter Size Range: 0-9999999999.99 |
| TotSDIContribAmt | Number | Employer's contributions to State Disability Insurance for the quarter Size Range: 0-9999999999.99 |
| PITWhAmt | Number | Personal Income Tax (PIT) withheld for the quarter Size Range: 0-9999999999.99 |
| TotalTaxLiability | Number | Total tax liability for the quarter Size Range: 0-9999999999.99 |
| TotalDeposits | Number | Total contributions and withholdings paid for the quarter Size Range: 0-9999999999.99 |
| TotalTaxDue | Number | Total due subject for the quarter Size Range: 0-9999999999.99 |
| NumOfEmployees | Number | Total number of employees for the quarter Size Range: ..9999999 |
| Month1TotEmployees | Number | Total number of employees reported for month 1 of the quarter. Size Range: ..9999999 |
| Month2TotEmployees | Number | Total number of employees reported for month 2 of the quarter. Size Range: ..9999999 |
| Month3TotEmployees | Number | Total number of employees reported for month 3 of the quarter. Size Range: ..9999999 |
| EmployeeDetails | Object[] | Object that contains infromation of the employees for the business |
| EmpSequenceId | String | A unique reference ID for the submission that can be used to identify a particular employee. The Sequence ID will be returned in the Response for your reference. |
| EmployeeId | Guid | A unique identifier generated by TaxBandits for an employee. You can use this ID for your future reference to Update. |
| SSN | String | Enter the nine-digit SSN of the employee. Size Range: 9-11 digits |
| FirstNm | String | First Name of the employee Size Range: ..20 |
| MiddleNm | String | Middle Name of the employee Size Range: ..20 |
| LastNm | String | Last Name of the employee Size Range: ..20 |
| Suffix | String | Suffix of the IndividualAllowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| WageCode | String | Wage plan code for the employeeAllowed values"S", "U", "J", "L", "R", "A", "P" |
| TotalWagesAmt | Number | Total subject wages paid for the employee. Size Range: 0-9999999999.99 |
| PITWagesAmt | Number | Personal Income Tax (PIT) wages paid for the employee Size Range: 0-9999999999.99 |
| PITWhAmt | Number | Personal Income Tax (PIT) withheld for the employee Size Range: 0-9999999999.99 |
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | Unique identifier of a submission |
| SuccessRecords | object[] | It will show the detailed information about the success status of Form DE9/9C Records |
| SequenceId | string | A unique number given by an inbound application to identify particular records. |
| BusinessId | Guid | Unique identifier of a Business |
| PayerRef | string | Unique identifier of the payer |
| RecordId | Guid | A unique identifier generated by TaxBandits when a DE9/9C return is created |
| FormType | string | Denotes the type of withholding form (Form DE9/9C). |
| Status | string | Returns the record status of return. |
| StatusTs | string | Date and time of the return created. |
| Info | string | Returns the information about the return |
| Errors | object[] | Shows error information of state returns of Form DE9/9C |
| Id | string | Returns the validation error Id. |
| Name | string | Name of the validation error. |
| Message | string | Description of the validation error. |
| ErrorRecords | object[] | It will show the detailed information about the error status of Form DE9/9C Records. |
| SequenceId | string | A unique number given by an inbound application to identify particular records. The Sequence ID will be returned in the Response for your reference. |
| RecordId | Guid | Unique identifier of a 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 |
Request JSON
{
"StateWhUIRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"TaxYr": "2025",
"Qtr": "Q4",
"Business": {
"BusinessId": null,
"BusinessNm": "Snowdaze LLC",
"TradeNm": "Snowdaze",
"IsEIN": true,
"EINorSSN": "251674903",
"Email": "sample@boodem.com",
"ContactNm": "John",
"Phone": "7894561231",
"PhoneExtn": "12345",
"Fax": "7123547895",
"BusinessType": "ESTE",
"KindOfEmployer": null,
"KindOfPayer": null,
"IsBusinessTerminated": false,
"IsForeign": false,
"USAddress": {
"Address1": "12 Main st",
"Address2": "CC avenue",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"ForeignAddress": {
"Address1": null,
"Address2": null,
"City": null,
"ProvinceOrStateNm": null,
"Country": null,
"PostalCd": null
},
"SigningAuthority": {
"Name": "John",
"Phone": "(789) 789-7987",
"BusinessMemberType": "ADMINISTRATOR"
}
}
},
"ReturnData": {
"FormDE9": {
"AccNum": "85412574",
"BranchCd": "684",
"IsNoWageReported": false,
"IsNoEmpOrBusinessClosed": false,
"BusinessClosedDt": "02/02/2025",
"TaxableWages": 50000,
"UIRate": "8",
"UITaxableWagesAmt": 25000,
"TotUIContribAmt": 2000,
"TotETTContribAmt": 1000,
"SDITaxableWagesAmt": 20000,
"TotSDIContribAmt": 600,
"PITWhAmt": 5000,
"TotalTaxLiability": 8600,
"TotalDeposits": 6000,
"TotalTaxDue": 2600,
"NumOfEmployees": {
"Month1TotEmployees": 50,
"Month2TotEmployees": 124,
"Month3TotEmployees": 46
},
"EmployeeDetails": [
{
"EmpSequenceId": "1",
"EmployeeId": null,
"SSN": "321522023",
"FirstNm": "kelly",
"MiddleNm": "A",
"LastNm": "roger",
"Suffix": "Sr",
"WageCode": "S",
"TotalWagesAmt": 30000,
"PITWagesAmt": 25000,
"PITWhAmt": 3000
},
{
"EmpSequenceId": "2",
"EmployeeId": null,
"SSN": "561251213",
"FirstNm": "jason",
"MiddleNm": "A",
"LastNm": "samuel",
"Suffix": "Sr",
"WageCode": "S",
"TotalWagesAmt": 20000,
"PITWagesAmt": 20000,
"PITWhAmt": 2000
}
]
}
}
}
]
}
Response JSON
{
"StatusCode": "200",
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"SubmissionId": "019c65fa-9213-75c9-bc93-224d4e5ccdb2",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "34a5310b-7471-484a-a3a5-fbef97ac59d6",
"PayerRef": null,
"RecordId": "019c65fa-9f59-7644-b238-3e57b4d970e7",
"FormType": "DE9",
"EmployeeData": [
{
"EmployeeId": "777b3a0c-6fc5-4b4a-b2c2-0e5c072b66e1"
},
{
"EmployeeId": "38e39974-f804-4fab-af94-544fe2925556"
}
],
"Status": "CREATED",
"StatusTs": "2026-02-16 05:24:09 -05:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": null,
"Errors": null
}