Create
Create
Use this endpoint to create Form NC UI101 (North Carolina Quarterly Tax and Wage Report) for an employer (payer), reporting quarterly wages, taxable wages, and unemployment insurance (UI) contributions due, along with required employee wage details for the corresponding quarter.
Form NC UI101 must be filed every quarter, even if no wages were paid.
POST StateFilings/NCUI/Create Request Body
| Field | Type | Description |
|---|---|---|
| StateUIRecords | Object[] | Object to identify the records. |
| SequenceId | String | A unique identifier for this record. Size Range: ..50 |
| ReturnHeader | Object | Contains information about the Business details. |
| TaxYr | string | The tax year for which the Form UC101 is to be filed. Allowed values"2025" |
| Qtr | string | The quarter for which the Form UC101 is to be filed. Allowed values"Q1", "Q2", "Q3", "Q4" |
| Business | Object | Object to identify the business details. |
| BusinessId | Guid | Optional Use the unique identifier provided in the response from the Business CREATE endpoint. |
| 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 the Employer Identification Number (EIN) Note: IsEIN should always be set to true, as EIN is the only allowed TIN type for state payroll forms. Size Range: 9-11 |
| string | Optional Email address of the business. Size Range: ..100 | |
| ContactNm | string | Optional Name of the person who can be contacted by the State Agency. Size Range: ..27 |
| Phone | string | Optional Phone number of the business. 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. 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 | Optional Identifies the kind of employer.Allowed values"FEDERALGOVT", "STATEORLOCAL501C", "NONGOVT501C", "STATEORLOCALNON501C", "NONEAPPLY" |
| KindOfPayer | string | Optional Identifies the kind of payer.Allowed values"REGULAR941", "REGULAR944", "AGRICULTURAL943", "HOUSEHOLD", "MILITARY", "MEDICAREQUALGOVEM", "RAILROADFORMCT1" |
| IsBusinessTerminated | Boolean | When true, indicates that the business is terminated. |
| IsForeign | Object | When true, indicates that the business has a foreign address. |
| USAddress | object | If IsForeign is false, pass the US address of the business. |
| Address1 | string | Employer/Payer's US address (street 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 code. Refer to static values. 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 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 | Contains the return information. |
| NCUI101 | Object | Identifies the Form NCUI101 data. |
| IsChangeOfAddr | Boolean | When true, identifies the business has changed the address |
| IsDiffMailAdd | Boolean | When true, identifies the business has a different mailing address |
| MailAddress | Object | If IsDiffMailAdd is true, pass the mailing address of the business. |
| Address1 | string | Employer/Payer's US address (street 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 code. Refer Static values. 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", |
| ZipCd | string | Employer/Payer's zip code. Size Range: 5..10 |
| UIIdNum | string | Employer ID number. Sample format: XXXXXXXXXX |
| IsNoWageReported | Boolean | When true, indicates that no wage is reported in this quarter |
| TaxRate | Number | Tax rate for the quarter. Size Range: 1-100 |
| TaxDue | Number | Tax due for the quarter. Size Range: 0-999999999.99 |
| Interest | Number | Optional Interest for the quarter. Size Range: 0-999999999.99 |
| PenaltyLateFiling | Number | Optional Late filing penalty for the quarter. Size Range: 0-999999999.99 |
| PenaltyLatePayment | Number | Optional Late payment penalty for the quarter. Size Range: 0-999999999.99 |
| BalanceDue | Number | Total Remittance due for the quarter. Size Range: 0-999999999.99 |
| NumOfEmployees | Object | Identifies the total number of employees for the quarter. |
| Month1Employees | string | Total number of employees in month 1 of the quarter. Size Range: 0-9999999 |
| Month2Employees | string | Total number of employees in month 2 of the quarter. Size Range: 0-9999999 |
| Month3Employees | string | Total number of employees in month 3 of the quarter. Size Range: 0-9999999 |
| EmployeeDetails | Object | Object to identify the Employee details. |
| EmpSequenceId | string | A unique number to identify this record. Size Range: ..10 |
| EmployeeId | Guid | Optional A unique ID generated by TaxBandits after the return is created and returned in the response. |
| EmpRef | string | A unique identifier of the employee. |
| SSN | string | Employee's Social Security Number (SSN). Size Range: 9-11 |
| FirstNm | string | Employee's first name. Size Range: 15 |
| MiddleNm | string | Optional Employee's middle name. Size Range: 15 |
| LastNm | string | Employee's last name. Size Range: 20 |
| Suffix | string | Optional Employee's suffix. Allowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| Address1 | string | Employer/Payer's US address (street 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 code. Refer Static values. 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", |
| ZipCd | string | Employer/Payer's zip code. Size Range: 5..10 |
| GrossWages | Number | Gross wages of the employee. Size Range: ..99999999999.99 |
| OutOfStateTaxableWages | Number | Out of state taxable wages of the employee. Size Range: ..99999999999.99 |
| NumOfHrsWorked | Number | Optional Number of hours worked in the quarter by the employee Size Range:0-999 |
| IsEmployee | Boolean | When true, indicates that the employment type is employee |
| IsOfficer | Boolean | When true, indicates that the employment type is Officer |
| IsSeasonal | Boolean | When true, indicates the employee as seasonal. |
| LocationSummary | string | Indicates whether the location is the primary location.Allowed values"PRIMARY", "OTHER" |
| SOCCode | string | Standard Occupational Classification of the employee Sample Format: XX-XXXX Size Range: 6 digits |
| IsMonth1 | Boolean | When true, indicates the employee was employed during the month 1 of the quarter. |
| IsMonth2 | Boolean | When true, indicates the employee was employed during the month 2 of the quarter. |
| IsMonth3 | Boolean | When true, indicates the employee was employed during the month 3 of the quarter. |
| TotGrossWages | Number | Total gross wages reported for the quarter. Size Range: ..99999999999.99 |
| TotOOSTaxableWages | Number | Total out-of-state taxable wages reported for the quarter. Size Range: ..99999999999.99 |
| TotExcessWages | Number | Total Excess wages for the quarter. Size Range: ..99999999999.99 |
| TotTaxableWages | Number | Total Taxable wages for the quarter. Size Range: ..99999999999.99 |
Response Body
| Field | Type | Description |
|---|---|---|
| SubmissionId | Guid | Unique identifier for a submission. |
| SuccessRecords | object[] | Provides detailed information about the success status of Form NCUI records. |
| SequenceId | string | A 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. |
| BusinessId | Guid | Unique identifier for the business (payer) generated by TaxBandits. |
| PayerRef | string | Unique identifier for the business (payer) provided by you.. |
| RecordId | Guid | A unique identifier generated by TaxBandits when a Form NCUI return is created. |
| FormType | string | Type of form. |
| Status | string | Returns the record status. |
| StatusTs | string | Returns the date and time when the return was created. |
| Info | string | Provides additional information about the return. |
| Errors | object[] | Displays error information related to the state returns of Form NCUI. |
| Id | string | Returns the validation error ID. |
| Name | string | Name of the validation error. |
| ErrorRecords | object[] | Provides detailed information about the error status of Form NCUI records. |
| SequenceId | string | A 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 for the record. |
| Errors | object[] | Displays 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
- Sample 1
Create NCUI return for each quarter of the tax year
{
"StateUIRecords": [
{
"SequenceId": "001",
"ReturnHeader": {
"Qtr": "Q4",
"TaxYr": "2025",
"Business": {
"BusinessNm": "SnowDaze LLC",
"PayerRef": null,
"FirstNm": null,
"MiddleNm": null,
"LastNm": null,
"Suffix": null,
"TradeNm": "Mayfill Tech",
"IsEIN": true,
"EINorSSN": "80-7897986",
"Email": "mayfill.k@zolotech.com",
"ContactNm": "John",
"Phone": "(789) 456-1231",
"PhoneExtn": "12345",
"Fax": "(712) 354-7895",
"BusinessType": "ESTE",
"SigningAuthority": {
"Name": "James Smith",
"Phone": "(993) 456-7890",
"BusinessMemberType": "ADMINISTRATOR"
},
"KindOfEmployer": "FEDERALGOVT",
"KindOfPayer": "REGULAR941",
"IsBusinessTerminated": false,
"IsForeign": false,
"USAddress": {
"Address1": "12 Main st",
"Address2": "CC avenue",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"ForeignAddress": null,
"ACADetails": null
}
},
"ReturnData": {
"FormNCUI101": {
"IsChangeOfAddr": false,
"UIIdNum": "5675757533",
"IsDiffMailAdd": true,
"MailAddress": {
"Address1": "12 Main st",
"Address2": "CC avenue",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"IsNoWageReported": false,
"TaxRate": 0.054,
"TaxDue": 108,
"Interest": 0,
"PenaltyLateFiling": 0,
"PenaltyLatePayment": 0,
"BalanceDue": 108,
"NumOfEmployees": {
"Month1Employees": 2,
"Month2Employees": 2,
"Month3Employees": 2
},
"EmployeeDetails": [
{
"EmpSequenceId": "01",
"EmployeeId": null,
"EmpRef": "Pe011204121",
"SSN": "761-90-0098",
"FirstNm": "John",
"MiddleNm": "Joe",
"LastNm": "Smith",
"Suffix": "Jr",
"USAddress": {
"Address1": "12 Main st",
"Address2": "CC avenue",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"GrossWages": 1000,
"TaxableWages": 1000,
"ExcessWages": 0,
"OutOfStateTaxableWages": 200,
"OutOfStateCode": 123,
"NumOfHrsWrkd": 40,
"IsEmployee": true,
"IsOfficer": false,
"IsSeasonal": true,
"LocationSummary": "PRIMARY",
"SOCCode": "123132",
"IsMonth1": true,
"IsMonth2": true,
"IsMonth3": true
},
{
"EmpSequenceId": "02",
"EmployeeId": null,
"EmpRef": "Payee09801231011",
"SSN": "761-34-0990",
"FirstNm": "John",
"MiddleNm": "Joe",
"LastNm": "Smith",
"Suffix": "Jr",
"USAddress": {
"Address1": "12 Main st",
"Address2": "CC avenue",
"City": "Rock Hill",
"State": "SC",
"ZipCd": "29730"
},
"GrossWages": 1000,
"TaxableWages": 1000,
"ExcessWages": 0,
"OutOfStateTaxableWages": 200,
"OutOfStateCode": 123,
"NumOfHrsWrkd": 40,
"IsEmployee": true,
"IsOfficer": false,
"IsSeasonal": true,
"LocationSummary": "PRIMARY",
"SOCCode": "123132",
"IsMonth1": true,
"IsMonth2": true,
"IsMonth3": true
}
],
"TotGrossWages": 2000,
"TotOutOfStateTaxableWages": 400,
"TotExcessWages": 0,
"TotTaxableWages": 2000
}
}
}
]
}
Response JSON
- 200
- 400
- 300
- 401
Success Response - This is a sample response for successful API requests.
{
"StatusCode": "200",
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"SubmissionId": "019cb36d-0258-7044-948f-a3dbbef22fa1",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "c8198997-6f20-439d-bac3-239226af2e7d",
"PayerRef": null,
"RecordId": "019cb36d-119e-713a-b0af-fee59838641e",
"FormType": "NCUI101",
"EmployeeData": [
{
"EmployeeId": "05f634a9-d5d8-4498-ae8e-55ec7d27bc3b",
"EmpRef": "Pe011204121"
},
{
"EmployeeId": "bed30b2b-9c5c-4ce4-9a11-d92e8193cb9f",
"EmpRef": "Payee09801231011"
}
],
"Status": "CREATED",
"StatusTs": "2026-03-03 06:19:55 -05:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": null,
"Errors": null
}
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-001055",
"Name": "StateUIRecords[0].ReturnData.FormNCUI101.TotGrossWages",
"Message": "Invalid Total Gross Wages. This value should sum of employees gross wages"
}
]
}
],
"Errors": null
}
Bad Request Response - You'll get the below response when your API requests contain any validation errors.
{
"StatusCode": "300",
"StatusName": "MultiStatus",
"StatusMessage": "Multiple statuses are available for the request",
"SubmissionId": "019cb372-92c3-747f-a304-86b02b65fec3",
"SuccessRecords": [
{
"SequenceId": "001",
"BusinessId": "a57e0e85-e90e-41ce-b525-12c9e673c4ab",
"PayerRef": null,
"RecordId": "019cb372-a22c-754a-8f06-3bddf48e73c9",
"FormType": "NCUI101",
"EmployeeData": [
{
"EmployeeId": "c116f5ca-bc65-41df-a2ee-0d634b9f3a07",
"EmpRef": "Pe01128567"
},
{
"EmployeeId": "1d27b62d-2e1c-4147-a597-f10a6a0d7cae",
"EmpRef": "Payee0985867"
}
],
"Status": "CREATED",
"StatusTs": "2026-03-03 06:26:00 -05:00",
"Info": null,
"Errors": null
}
],
"ErrorRecords": [
{
"SequenceId": "002",
"RecordId": null,
"Errors": [
{
"Id": "S00-000979",
"Name": "StateUIRecords[1].ReturnData.FormNCUI101.UIIdNum",
"Message": "Enter a valid NC UI id number. The UI id number should be 10 digits"
}
]
}
],
"Errors": [
{
"Id": "S00-000184",
"Name": "Error Records",
"Message": "Some of the records are errored. Please read the Error Records for more details."
}
]
}
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"
}
]
}