Create
Create
Use this endpoint to generate a new withholding form for the state of South Carolina. There are two withholding forms available: Form 1605 and Form 1606, but they apply under different circumstances:
- Form 1605: Use this form to report tax withholding for the first three quarters of the tax year.
- Form 1606: Use this form to report tax withholding for the last quarter of the tax year or for annual reconciliation.
POST StateFilings/SCWH/Create
Request Body
Field | Type | Description |
---|---|---|
StateWHRecords | Object [] | Object to create 1605/1606 |
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 1065 or Form 1606. |
Qtr | String | The Quarter for which Form 1605 or Form 1606 needs to be filed. |
TaxYr | String | The Tax year for which Form 1605 or Form 1606 needs to be filed. |
BusinessId | String | Optional Use the unique Business ID (Generated by TaxBandits), you received in the response of the Business CREATE Endpoint. If you do not have a Business ID, ignore the field. By giving the Business ID, you do not have to provide all the business information again. |
Business | Object | Business Details |
BusinessNm | String | Name of the business Size Range: ..75 |
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, use Employer Identification Number (EIN). When IsEIN is false, use Social Security Number (SSN). Size Range: 9-11 |
String | Email address of the Business Size Range: ..100 | |
ContactNm | String | Name of the person who can be contacted by the IRS Size Range: ..27 |
Phone | String | Contact number of the business with area code Size Range: 10 |
PhoneExtn | String | Optional Extension of the business phone number Size Range: ..5 |
Fax | String | Optional Fax number of the Business Size Range: 10 |
BusinessType | String | Type of business. Optional for W-2/1099 and mandatory for 94X series Size Range: ..4 Allowed values"ESTE", "PART", "CORP", "EORG", "SPRO" |
SigningAuthority | Object | Details of the person who is authorized to sign the return |
Name | String | Name of the signing authority. Size Range: ..35 |
Phone | String | Phone number of the signing authority. Size Range: 10 |
BusinessMemberType | String | Business title of the signing authority Size Range: 5..29 Allowed values"CORPORATESECRETARY", "SECRETARYTREASURER", "PARTNER", "GENERALPARTNER", "LIMITEDPARTNER", "LLCMEMBER", "MANAGINGMEMBER", "MANAGER", "TAXMATTERPARTNER", "PRESIDENT", "VICEPRESIDENT", "CORPORATETREASURER", "TREASURER", "ASSISTANTTREASURER", "CHIEFACCOUNTINGOFFICER", "CHIEFEXECUTIVEOFFICER", "CHIEFFINANCIALOFFICER", "TAXOFFICER", "CHIEFOPERATINGOFFICER", "CORPORATEOFFICER", "EXECUTIVEDIRECTOR", "DIRECTOR", "CHAIRMAN", "EXECUTIVEADMINISTRATOR", "RECEIVER", "PASTOR", "ASSISTANTTORELIGIOUSLEADER", "REVEREND", "PRIEST", "MINISTER", "RABBI", "LEADEROFRELIGIOUSORGANIZATION", "SECRETARY", "DIRECTOROFTAXATION", "DIRECTOROFPERSONNEL", "ADMINISTRATOR", "EXECUTOR", "TRUSTEE", "FIDUCIARY", "OWNER", "SOLEPROPRIETOR", "MEMBER", "SOLEMEMBER" |
KindOfEmployer | String | Identifies the kind of employer. Mandatory for W-2 and optional for 1099-MISC and 94X series.Allowed values"FEDERALGOVT", "STATEORLOCAL501C", "NONGOVT501C", "STATEORLOCALNON501C", "NONEAPPLY" |
IsBusinessTerminated | Boolean | When true, identifies the business as terminated. |
IsForeign | Boolean | When true, identifies the business address with a foreign address. |
USAddress | Object | if IsForeign is false, pass US address of the business |
Address1 | String | Employer/Payer's US address (street address or post office box of that locality) 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 foreign address of the business |
Address1 | String | Employer/Payer's foreign address (street address or post office box of that locality). 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 1605 or Form 1606 data |
FormSC1605 | Object | Form 1605, South Carolina withholding quarterly tax return |
IsChangeOfAdd | Boolean | If true identifies that the payer has changed the address |
IsCloseWHAcc | Boolean | If true identifies that the payer payer has closed the withholding account |
WHAccCloseDate | String | Withholding account closed date.Enter the date in the format: MM/DD/YYYY or MM-DD-YYYY Example: 01/25/2025 or 01-25-2025 |
WHIdNum | String | South Carolina withholding file number. Size Range: ..9 |
L1IncomeTaxWH | number | Quarterly South Carolina income tax withheld from all sources Size Range: 0-99999999.99 |
L2IncomeTaxDeposits | number | Quarterly South Carolina income tax deposits or payments made Size Range: 0-99999999.99 |
L3Refund | number | Total refund (Enter the difference if L2IncomeTaxDeposits is greater than L1IncomeTaxWithheld) |
L4TaxDue | number | Total tax due (Enter the difference if L1IncomeTaxWH is greater than L2IncomeTaxDeposits) Size Range: 0-99999999.99 |
L5Penalty | number | Total penalty amount if applicable Size Range: 0-99999999.99 |
L5Interest | number | Total interest due amount Size Range: 0-99999999.99 |
L5Total | number | Total penalty and interest due amount (add L5Penalty and L5Interest) Size Range: 0-99999999.99 |
L6BalanceDue | number | Total penalty amount if applicable Size Range: 0-99999999.99 |
FormSC1606 | Object | Total interest due amount Size Range: 0-99999999.99 |
IsChangeOfAdd | Boolean | Total penalty and interest due amount (add L5Penalty and L5Interest) Size Range: 0-99999999.99 |
IsCloseWhAcc | Boolean | If true identifies that the payer payer has closed the withholding account |
WHAccCloseDate | String | Withholding account closed date.Enter the date in the format: MM/DD/YYYY or MM-DD-YYYY Example: 01/25/2025 or 01-25-2025 |
WHIdNum | String | South Carolina withholding file number. Size Range: ..9 |
L1IncomeTaxWH | Number | Quarterly South Carolina fourth quarter income tax withheld from all sources Size Range: 0-99999999.99 |
L2IncomeTaxDeposits | Number | Quarterly South Carolina fourth quarter income tax deposits or payments made Size Range: 0-99999999.99 |
L3Refund | Number | Total refund (Enter the difference if L2IncomeTaxDeposits is greater than L1IncomeTaxWithheld) Size Range: 0-99999999.99 |
L4TaxDue | Number | Total tax due (Enter the difference if L1IncomeTaxWH is greater than L2IncomeTaxDeposits) Size Range: 0-99999999.99 |
L5Penalty | Number | Total penalty amount if applicable Size Range: 0-99999999.99 |
L5Interest | Number | Total interest due amount |
L5Total | Number | Total penalty and interest due amount (add L5Penalty and L5Interest) Size Range: 0-99999999.99 |
L6BalanceDue | Number | Total penalty amount if applicable Size Range: 0-99999999.99 |
L7JantoMar | Number | Total tax withheld from all sources in Quarter 1 (Jan to Mar) Size Range: 0-99999999.99 |
L7AprtoJun | Number | Total tax withheld from all sources in Quarter 2 (Apr to Jun) Size Range: 0-99999999.99 |
L7JultoSep | Number | Total tax withheld from all sources in Quarter 2 (Apr to Jun) Size Range: 0-99999999.99 |
L7OcttoDec | Number | Total tax withheld from all sources in Quarter 4 (October to December) Size Range: 0-99999999.99 |
L7TotalTaxWH | Number | Total tax withheld from all the quarters (sum of L7JantoMar, L7AprtoJun, L7JultoSep and L7OcttoDec) Size Range: 0-99999999.99 |
L8W2s | Number | Total South Carolina income tax withheld from all quarters reported from W-2 forms Size Range: 0-99999999.99 |
L8W2Gs | Number | Total South Carolina income tax withheld from all quarters reported from W-2G forms Size Range: 0-99999999.99 |
L81099s | Number | Total South Carolina income tax withheld from all quarters reported from 1099 forms Size Range: 0-99999999.99 |
L8TotalTaxWH | Number | Total South Carolina income tax withheld from all quarters reported from all W-2, W-2G and 1099 forms Size Range: 0-99999999.99 |
L9TotalSCIncome | Number | Total South Carolina income reported in W-2s, W-2Gs and 1099s Size Range: 0-99999999.99 |
L10NoOfFormsSubmitted | Number | Total number of W-2s, W-2Gs, and 1099s submitted with WH-1612 or online through MyDORWAY Size Range: ..6 |
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 1605/1606 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 | An unique identifier generated by TaxBandits when a 1605/1606 return is created |
FormType | string | Denotes the type of withholding form (Form 1605 / Form 1606). |
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 1605 / Form 1606 |
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 1605 / Form 1606 Records. |
SequenceId | string | An unique reference ID for the submission that can be used to identify a particular record. 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 |
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
{
"SubmissionId": "01993c45-e77e-7383-823a-d13273fd717c",
"StateWHRecords": [
{
"Sequence": "001",
"RecordId": "01993c45-e804-75cc-b9ff-908f41dbe62f",
"ReturnHeader": {
"Qtr": "Q1",
"TaxYr": "2025",
"Business": {
"BusinessId": "d2100525-3a85-4b33-8fb4-3f7682944ee1",
"BusinessNm": "SnowDaze LLC",
"PayerRef": null,
"TradeNm": "Iceberg Icecreams",
"IsEIN": true,
"EINorSSN": "76-5667983",
"Email": "john@gmail.com",
"IsForeign": false,
"USAddress": {
"Address1": "12 main st",
"Address2": null,
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"ForeignAddress": null,
"ACADetails": null
}
},
"ReturnData": {
"FormSC1605": {
"IsChangeOfAdd": true,
"IsCloseWHAcc": true,
"WHAccCloseDate": "07/23/2025",
"WHIdNum": "124588229",
"L1IncomeTaxWH": 5000,
"L2IncomeTaxDeposits": 6000,
"L3Refund": 1000,
"L4TaxDue": 0,
"L5Penalty": 0,
"L5Interest": 0,
"L5Total": 0,
"L6BalanceDue": 0
},
"FormSC1606": null
}
},
{
"Sequence": "002",
"RecordId": "01993c45-eb89-7084-a20f-4ec9acf05faf",
"ReturnHeader": {
"Qtr": "Q4",
"TaxYr": "2025",
"Business": {
"BusinessId": "01e8159f-dace-4f65-adaf-57d406be4e24",
"BusinessNm": "Snow LLC",
"PayerRef": null,
"TradeNm": "Iceberg Icecreams",
"IsEIN": true,
"EINorSSN": "31-8389875",
"Email": "john@gmail.com",
"IsForeign": false,
"USAddress": {
"Address1": "12 main st",
"Address2": null,
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"ForeignAddress": null,
"ACADetails": null
}
},
"ReturnData": {
"FormSC1605": null,
"FormSC1606": {
"IsChangeOfAdd": true,
"WHAccCloseDate": "07/23/2025",
"WHIdNum": "124588229",
"L1IncomeTaxWH": 5000,
"L2IncomeTaxDeposits": 6000,
"L3Refund": 1000,
"L4TaxDue": 0,
"L5Penalty": 0,
"L5Interest": 0,
"L5Total": 0,
"L6BalanceDue": 0,
"L7JantoMar": 200,
"L7AprtoJun": 200,
"L7JultoSep": 200,
"L7OcttoDec": 200,
"L7TotalTaxWH": 800,
"L8W2s": 300,
"L8W2Gs": 100,
"L81099s": 400,
"L8TotalTaxWH": 800,
"L9TotalSCIncome": 12000,
"L10NoOfFormsSubmitted": 500,
"IsCloseWhAcc": true
}
}
}
]
}
Response JSON
- 200
- 300
- 400
- 401
Success Response - This is a sample response for successful API requests.
{
"StatusCode": "200",
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"SubmissionId": "01993c3f-bd17-73ad-b4ca-8891c23f3118",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "da40ab7f-e8dc-4091-834b-b564a437c895",
"PayerRef": null,
"RecordId": "01993c3f-bdd6-71f0-ac13-27cd4b663571",
"FormType": "SC1605",
"Status": "CREATED",
"StatusTs": "2025-09-12 00:47:14 -04:00",
"Info": null,
"Errors": null
},
{
"SequenceId": "002",
"BusinessId": "df7b1d1b-62c3-4cb0-a564-3958c0bea9cf",
"PayerRef": null,
"RecordId": "01993c3f-c322-71d5-ab35-0f70f59d72b2",
"FormType": "SC1606",
"Status": "CREATED",
"StatusTs": "2025-09-12 00:47:15 -04:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": null,
"Errors": null
}
Multi-status Response - You'll get the below response when multiple statuses are included.
{
"StatusCode": "300",
"StatusName": "MultiStatus",
"StatusMessage": "Multiple statuses are available for the request",
"SubmissionId": "01993c79-a354-73ee-98a4-e3331ca776ea",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "39c723e8-7c31-4e1a-ae77-6a5b648c1b28",
"PayerRef": null,
"RecordId": "01993c79-a3bc-711d-8fe7-524e3ca7e8b5",
"FormType": "SC1605",
"Status": "CREATED",
"StatusTs": "2025-09-12 01:50:28 -04:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": [
{
"SequenceId": "002",
"RecordId": null,
"Errors": [
{
"Id": "S00-000190",
"Name": "Quarter",
"Message": "Return already exists for a given quarter and tax year."
}
]
}
],
"Errors": [
{
"Id": "S00-000184",
"Name": "Error Records",
"Message": "Some of the records are errored. Please read the Error Records for more details."
}
]
}
Bad Request Response - You'll get the below response when your API requests contain any validation errors.
{
"StatusCode": "400",
"StatusName": "BadRequest",
"StatusMessage": "Validation error has occurred",
"SubmissionId": null,
"SuccessRecords": null,
"ErrorRecords": [
{
"SequenceId": "001",
"RecordId": null,
"Errors": [
{
"Id": "S00-000190",
"Name": "Quarter",
"Message": "Return already exists for a given quarter and tax year."
}
]
}
],
"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-100018",
"Name": "Authorization",
"Message": "JWT EXPIRED"
}
]
}