Learn How to File Quarterly Wage Reports
Each quarter a Quarterly Wage Report and Unemployment Tax Return form (K-CNS 100) is mailed to each active employer who sent in a paper report the previous quarter and does not meet the electronic filing requirement.
The following credit card fee schedule outlines the charges which will be billed on your credit card as a convenience fee. The fee for payments made by credit card above $999.99 will increase by $3.00 per $100.00.
Payment Amount From($) | Payment Amount To($) | Credit Card Fee ($) |
---|---|---|
0.01 | 49.99 | 0.00 |
50.00 | 99.99 | 1.00 |
100.00 | 149.99 | 3.00 |
150.00 | 199.99 | 4.00 |
200.00 | 299.99 | 6.00 |
300.00 | 399.99 | 10.00 |
400.00 | 499.99 | 13.00 |
500.00 | 599.99 | 16.00 |
600.00 | 699.99 | 19.00 |
700.00 | 799.99 | 21.00 |
800.00 | 899.99 | 24.00 |
900.00 | 999.99 | 27.00 |
-
How to File Unemployment Taxes Online: Guide for Accountants
-
Quarterly Wage Report and Unemployment Tax Return
For questions or to report issues with the options listed below, please contact (785) 296-5027 for support Monday through Friday from 8 a.m. to 4:30 p.m. CST.
Employers who want to upload formatted wage files, but do not want to build a custom client can submit wage files through KansasEmployer.gov. Employers cannot automate the submission process if they use this method to send wage information.
Requirements
- Employer must be registered with KansasEmployer.gov
- Employer must be able to format your wage data to the required file specifications
Payments: Employers will have the option to upload a payment file to KDOL. Uploaded payment data will be processed as electronic checks. This will significantly cut employer cost for printing and mailing checks to KDOL.
Employers who want to automate the process of submitting wage details files to KDOL can use the Web service function.
The Web service process will utilize a SOAP (1.1 or 1.2) based Web Service in order to allow for electronic submission of properly formatted wage files. In order to use this service, clients will have to download the Web Service Description Language (WSDL) and build a custom client.
Note: When the production version is released, no uploaded records will be processed until they have been committed using the "CommitValidRecords" method.
Requirements
- Employer must be able to format the wage data to the required file specifications
- Employer must be capable of building a SOAP based client to interface with KDOL's Web service
Web Service Methods
Method: SubmitTestFile()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
FileContent | ByteArray | Yes | N/A | Binary representation of a file. |
FileType | Enumeration | Yes | N/A | Identifies the type of file submitted. The four valid file types are MMREF, NASWA, Payment and Rate. |
FileName | String | Yes | 5 / 75 | The file name and extension used for the data file. This is used to ID the file on the server as well as extension for the compression used. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-120 | Unique transaction identifier |
If all of the above parameters pass the validation processes this method will return a unique transaction identifier (UTID), which is a unique string. This UTID will be used in subsequent calls. If a failure occurs the Web service will generate a SOAP Fault with a descriptive error message and will need to be handled by your SOAP client. In the case of submitting a test file, the file will be validated but will not be processed. In order to actually submit your data to the Kansas Department of Labor, you must use the SubmitFile() method.
Method: SubmitFile()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
FileContent | ByteArray | Yes | N/A | Binary representation of a file. |
FileType | Enumeration | Yes | N/A | Identifies the type of file submitted. The four valid file types are MMREF, NASWA, Payment and Rate. |
FileName | String | Yes | 5 / 75 | The file name and extension used for the data file. This is used to ID the file on the server as well as extension for the compression used. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-120 | Unique transaction identifier |
If all the above parameters pass the validation processes this method will return a unique transaction identifier (UTID), which is a unique string. This UTID will be used in subsequent calls. If a failure occurs the Web service will generate a SOAP Fault with a descriptive error message and will need to be handled by your SOAP client.
Method: GetStatus()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
UTID | String | Yes | N/A | This Unique transaction identifier that was returned by the SubmitFile() or SubmitTestFile() method. The UTID used to identify the file that was submitted. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-30 | Status value describing what state the current transaction is in. |
If a valid UTID is passed in, the status of the submission will be returned. If an invalid UTID is passed, status of "InvalidUTID" is returned. If for some reason something failed the web service will generate a SOAP Fault with an error message that will need to be handled by your SOAP client.
Status | Description | MMREF/NASWA | Payment | Rate |
---|---|---|---|---|
DataTransferError | Indicates there was an error transferring the file from the client machine the Kansas Department of Labor server. | X | X | |
InvalidUTID | Indicates that the UTID passed does not exist in our system. | X | X | X |
InvalidFileType | Indicates an incorrect action on a given file type. Only MMREF, NASWA and Payment files may be committed. A Rate file may only be used for a RateRequest. | X | X | X |
DataContentError | Indicates there was an unknown/unexpected error with the submitted file. | X | X | X |
DataContentErrorSize* | Indicates the submitted file was too large. | X | X | X |
DataContentErrorInv* | Indicates the submitted file was unreadable, used an incorrect character set, was found to contain malicious content or had too long of a filename. | X | X | X |
DataContentErrorComp* | Indicates the submitted file uses an unsupported compression type. | X | X | X |
DataContentErrorFTP* | Indicates the submitted file was unable to be saved in the KDOL file repository. | X | X | X |
Validating | Indicates the file submission has been received and the KDOL system is currently validating the data submitted. | X | X | X |
DataValidationFailed | Indicates that all of the data contained in the file submission was not valid. Use the GetUploadDetail() method for more details. | X | X | X |
DataLoadFailed | Indicates there was an error loading the file information into the Kansas Department of Labor system. If this error occurs you are encouraged to try resubmitting the file. | X | X | X |
Submitted | Indicates the file submission was a success and the Kansas Department of Labor has successfully received the wage information and at least one employer record is valid. You can use GetUploadDetail() method to view invalid employer records. If you would like to go ahead and submit employer records that were valid, use the CommitValidRecords() method. | X | X | X |
Committing | Indicates data from the file submission is currently being committed and loaded into the KDOL system. | X | X | |
Committed | Indicates the records have been committed and will be processed shortly. Nothing more is required by the client. | X | X | |
Processed | Indicates the Kansas Department of Labor has successfully received and loaded the committed wage information. Uploads can not be cleared at this point. | X | X | |
ProcessedPDFFail* | Indicates the Kansas Department of Labor has successfully received and loaded the committed wage information, but PDFs were not successfully generated (only relevant for wage files). Uploads can not be cleared at this point. | X | ||
Cleared | Indicates the submitted data has been cleared. | X | X |
* and statuses in green = New statuses coming in September 2017
Method: GetUploadDetail()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
UTID | String | Yes | N/A | This Unique transaction identifier that was returned by the SubmitFile() or SubmitTestFile() method. The UTID used to identify the file that was submitted. |
CompressionType | String | Yes | N/A | Indicates the compression type used to return the detail file. Options are none, zip, gz (gzip) and bz2 (bzip2). |
NumValid | Integer | No | N/A | Value is passed in by reference. An integer (can be any integer) will be passed in and the number of valid employers will be returned. |
NumInvalid | Integer | No | N/A | Value is passed in by reference. An integer (can be any integer) will be passed in and the number of invalid employers will be returned. |
FileContent | ByteArray | No | N/A | File (to be filled) containing a detailed analysis of the submitted file invalid lines. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-100 | Returns "True" on success. Returns an error message on failure. |
If a valid UTID is passed in, "True" is returned and the number of valid and invalid employers will be returned. In addition, a detailed file analysis will be returned of invalid records. If an invalid UTID is passed, an error message will be returned. If a failure occurs the Web service will generate a SOAP Fault with an error message that will need to be handled by your SOAP client.
Method: CommitValidRecords()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
UTID | String | Yes | N/A | This Unique transaction identifier that was returned by the SubmitFile() method. The UTID is used to identify the file that was submitted. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-100 | Returns "True" on success. Returns an error message on failure. |
If a valid UTID is passed in, "True" is returned and all the records that were returned as valid in the GetUploadDetail() method will be submitted. Records will not be processed by KDOL if this method is not called. If an invalid UTID is passed, an error message will be returned. If a failure occurs the Web service will generate a SOAP Fault with a descriptive error message and will need to be handled by your SOAP client.
Method: GetTransactionDetail()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
UTID | String | Yes | N/A | This Unique Transaction Identifier (UTID) that was returned by the SubmitFile() method. The UTID is used to identify the file that was submitted. |
Confirmation | String | No | N/A | The confirmation number used to identify a committed file for processing. |
CommitDate | String | No | N/A | The date you successfully committed your information to be processed as a string. |
Totals | Double | No | N/A | The total number of accounts committed for processing, or the total number of dollars made for payments, depending on the file type you submitted. |
Accounts | Int Array | No | N/A | A list of valid accounts that will be processed after a commit has been submitted. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-100 | Returns "True" on success. Returns an error message on failure. |
If a valid UTID is passed in, "True" will be returned and all the wage detail record or payment information totals committed will be returned. Upload must first be committed before this function can be called. If a failure occurs the Web service will generate a SOAP Fault with a descriptive error message and will need to be handled by your SOAP client.
Method: ClearUpload()
The input parameter(s) are as follows:
Parameter | Type | Required | Length min/max | Description |
---|---|---|---|---|
UTID | String | Yes | N/A | This Unique Transaction Identifier (UTID) that was returned by the SubmitFile() method. The UTID is used to identify the file that was submitted. |
The Return value(s) are as follows:
Type | Length min/max | Description |
---|---|---|
String | 1-100 | Returns "True" on success. Returns an error message on failure. |
If a valid UTID is passed in, "True" will be returned and all the wage detail records submitted will be cleared. Wage detail information that already has a status of "Processed" cannot be cleared. Therefore if the status is "Processed" or an invalid UTID is passed, an error message will be returned. If a failure occurs, the Web service will generate a SOAP Fault with a descriptive error message and will need to be handled by your SOAP client.
Defining Error Messages
The underlying connection was closed: An unexpected error occurred on a receive: Usually indicates that the file submitted was too large. There is a 5mb limit on individual file submissions.
InvalidUTID: Indicates that the UTID passed in does not exist in our system.
InvalidFileType: Indicates an incorrect action on a given file type. Only MMREF, NASWA and Payment files may be committed. A Rate file may only be used for a RateRequest.
DataContentError: Indicates there was an error with the submitted file. Possibilities of errors could include the file was too large, unreadable, used an incorrect character set, was found to contain malicious content, or too large of a filename was used.
DataLoadFailed: Indicates there was an error loading the file information into the Kansas Department of Labor system. If this error occurs you are encouraged to try resubmitting the file.
DataValidationFailed: Indicates that all of the data contained in the file submission was not valid. Use the GetUploadDetail() method for more details. If you would like to go ahead and submit employer records that were valid, use the CommitValidRecords() method.
DataTransferError: Indicates there was an error transferring the file from the client machine the Kansas Department of Labor server.
NotCommitted: Indicates that no records for the UTID submitted have been committed. For example, this error is returned if you try to get the transaction detail without first committing any records.
MMREF-1 Technical Specification: The Kansas Department of Labor will accept the MMREF-1 file format used by the Social Security Administration. We only require the records and fields that we need. Any record or field that is not required by the Kansas Department of Labor will be IGNORED. The layout defined below indicates only the fields required by the Kansas Department of Labor. For a complete specification you can visit the Social Security Administration website. Please review KDOL’s specification carefully to determine exactly what records and fields are required.
The following requirements apply to the entire file:
- Must be readable.
- Must be ASCII text data format.
- Must not put your organization over the 100MB maximum submission per day.
- All Records must be 512 characters in length (each record is a separate line ended by CR LF)
- Must have at least one RA, at least one RE, and at least one RS record.
- File must be of type zip, gz, bz2, txt, or dat. All other files will be rejected. Any compressed file must be of type txt or dat after it is decompressed. Any compressed file can only contain one file.
- File name must be less than 75 characters.
- File must not exceed 5MB. If a file is larger than 5MB then we suggest either compressing it using zip, gz, or bz2 or breaking it up into multiple files.
The following requirements apply to employers:
- Individual fields must meet the minimum format (use layout below to determine).
- Wage detail will not be accepted for future quarters. For example, data will be not be accepted for 3rd quarter of 2018 in January of 2018.
- Total taxable wages must not exceed total wages.
- Individual employer record must not contain greater than 99 employee records with no SSN.
- Employer account must be currently active.
- Total wages must not exceed $1,000,000. Employees whose earnings exceed $1,000,000 must be broken down into multiple records that are less than $1,000,000.
- Each employer can only be submitted once per quarter.
- If any individual Employee Records (RS) do not meet the minimum data requirements, the entire Employer Record (RE) will be rejected.
- If multiple Employer Records (RE) are being submitted, the Employee Records (RS) for an employer must be grouped directly under the Employer Record (RE).
NASWA File Technical Specification: The Kansas Department of Labor will accept the NASWA (formerly ICESA) file format. KDOL only requires the records and fields that we need. Any record or field that is not required by KDOL will be IGNORED. The layout defined below only indicated the fields required by the KDOL. Please review our specification carefully to determine exactly what records and fields are required.
The following requirements are used to reject an entire file:
- Must be readable.
- Must be ASCII text data format.
- Must not put your organization over the 100MB maximum submission per day.
- All Records must be 275 characters in length (each record is a separate line ended by CR LF)
- Must have only one Code A, only one Code B, one or more Code E, and one or more Code S records.
- File must be of type zip, gz, bz2, txt, or dat. All other files will be rejected. Any compressed file must be of type txt or dat after it is decompressed. Any compressed file can only contain one file.
- File name must be less than 75 characters.
- File must not exceed 5MB. If a file is larger than 5MB than we suggest either compressing it using zip, gz, or bz2 or breaking it up into multiple files.
The following requirements are used to reject individual employers:
- Individual fields must meet the minimum format (use layout below to determine).
- Wage detail will not be accepted for future quarters. For example, data will be not be accepted for 3rd quarter of 2018 in January of 2018.
- Total excess wages must not exceed total wages.
- Individual employer record contains greater than 99 employee records with no SSN.
- Employer account must be currently active.
- Total wages or Excess wages must not exceed $1,000,000. Employees whose earnings exceed $1,000,000 must be broken down into multiple records that are less than $1,000,000.
- Each employer can only be submitted once per quarter.
- If any individual Employee Records (Code S) do not meet the minimum data requirements, the entire Employer Record (Code E) will be rejected.
Payment File Technical Specification: The Kansas Department of Labor will accept the Payment file format found below. The layout defined below only indicates the fields required by the Kansas Department of Labor. Please review our specification carefully to determine exactly what records and fields are required.
The following requirements are used to reject an entire file:
- Must be readable.
- Must be ASCII text data format.
- Must not put your organization over the 100MB maximum submission per day.
- All records must be 381 characters in length (each record is a separate line ended by CR LF).
- File must be of type zip, gz, bz2, txt, or dat. All other files will be rejected. Any compressed file must be of type txt or dat after it is decompressed. Any compressed file can only contain one file.
- File name must be less than 75 characters.
- File must not exceed 5MB. If a file is larger than 5mb than we suggest either compressing it using zip, gz, or bz2 or breaking it up into multiple files.
Detailed Return Technical File Specification: When the GetUploadDetail() transaction is called, a file is returned that contains a detailed listing of any errors that occurred while validating the uploaded file. This is done for all file types submitted.
The return file will have the following properties:
- ASCII text data format.
- When returned file can be compressed using zip, gz, or bz2 if requested when calling the GetUploadDetail() transaction.
- File will be comma delimited with the following columns:
- Data Row where the error occurred.
- Error number if entire record is bad. Column number if individual column has bad data.
- Error Description
- Original row data submitted.
If there is an issue with the entire record, for instance, it is not the correct number of bytes or the account number submitted is not valid an error message will be returned in the 2nd column of the return file. If there is a data error, for instance, a required name is missing then the column number that the error occurred in will be returned in column two.
Click on any of the sample files below to download the corresponding zip file.
The sample Web service codes below are provided for the convenience of our customers and intended for demonstrative purposes only. No guarantees or warranties as to acceptability, accuracy, compatibility or for any other reason is made either express or implied.