How to File Quarterly Wage Reports

Employers can upload Quarterly Wage Reports, Unemployment Tax Returns and tax payments electronically to the Kansas Department of Labor (KDOL). There are many benefits for employers to electronically uploading wage and tax information, including:

  • Cost Savings: This service is offered free of charge. This eliminates employer expense for magnetic media, printing, mailing and labor costs.
  • Time Savings: A response from KDOL will be returned almost immediately following submission.
  • Better Error Reporting: Real time reports are returned to the submitter giving details about any problems.
  • Better Security: Files uploaded to the KDOL website are securely transferred using 128 bit encryption.

As of July 1, 2011, all employers with 50 or more employees, or third-party administrators with 50 or more client employees, must electronically file all Quarterly Wage Reports and contribution returns and make any quarterly tax payments online. Employers have two options for submitting wage detail through via file upload to KDOL. This process does not require an additional Quarterly Wage Report submission. All the totals for the Quarterly Wage Report will be computed by KDOL.

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

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

  1. Employer must be registered with KansasEmployer.gov
  2. Employer must be able to format your wage data to the required file specifications
Note about spreadsheet uploading: Employers can now upload employee wage data from a properly formatted Microsoft Excel spreadsheet for filing their Quarterly Wage Reports. The spreadsheet data (including Social Security numbers, employee names and gross wages) can be imported to our secure Internet Web form, which can then be reviewed for errors and calculated prior to submitting the report. Up to 4,000 employees can be imported on a spreadsheet. The spreadsheet upload serves as a time-saving alternative to the manual data entry for KDOL’s online Web form.
Note: Tax contribution information is automatically calculated for you. You can make your tax payment online as well.

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

  1. Employer must be able to format the wage data to the required file specifications
  2. 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:

ParameterTypeRequiredLength min/maxDescription
FileContentByteArrayYesN/ABinary representation of a file.
FileTypeEnumerationYesN/AIdentifies the type of file submitted. The four valid file types are MMREF, NASWA, Payment and Rate.
FileNameStringYes5 / 75The 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:

TypeLength min/maxDescription
String1-120Unique 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:

ParameterTypeRequiredLength min/maxDescription
FileContentByteArrayYesN/ABinary representation of a file.
FileTypeEnumerationYesN/AIdentifies the type of file submitted. The four valid file types are MMREF, NASWA, Payment and Rate.
FileNameStringYes5 / 75The 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:

TypeLength min/maxDescription
String1-120Unique 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:

ParameterTypeRequiredLength min/maxDescription
UTIDStringYesN/AThis 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:

TypeLength min/maxDescription
String1-30Status 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.

StatusDescriptionMMREF/NASWAPaymentRate
DataTransferErrorIndicates there was an error transferring the file from the client machine the Kansas Department of Labor server. XX
InvalidUTIDIndicates that the UTID passed does not exist in our system.XXX
InvalidFileTypeIndicates 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.XXX
DataContentErrorIndicates there was an unknown/unexpected error with the submitted file.XXX
DataContentErrorSize*Indicates the submitted file was too large.XXX
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.XXX
DataContentErrorComp*Indicates the submitted file uses an unsupported compression type.XXX
DataContentErrorFTP*Indicates the submitted file was unable to be saved in the KDOL file repository.XXX
ValidatingIndicates the file submission has been received and the KDOL system is currently validating the data submitted.XXX
DataValidationFailedIndicates that all of the data contained in the file submission was not valid. Use the GetUploadDetail() method for more details.XXX
DataLoadFailedIndicates 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.XXX
SubmittedIndicates 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.XXX
CommittingIndicates data from the file submission is currently being committed and loaded into the KDOL system.XX 
CommittedIndicates the records have been committed and will be processed shortly. Nothing more is required by the client.XX 
ProcessedIndicates the Kansas Department of Labor has successfully received and loaded the committed wage information. Uploads can not be cleared at this point.XX 
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  
ClearedIndicates the submitted data has been cleared.XX 

* and statuses in green = New statuses coming in September 2017 

Method: GetUploadDetail()

The input parameter(s) are as follows:

ParameterTypeRequiredLength min/maxDescription
UTIDStringYesN/AThis Unique transaction identifier that was returned by the SubmitFile() or SubmitTestFile() method. The UTID used to identify the file that was submitted.
CompressionTypeStringYesN/AIndicates the compression type used to return the detail file. Options are none, zip, gz (gzip) and bz2 (bzip2).
NumValidIntegerNoN/AValue is passed in by reference. An integer (can be any integer) will be passed in and the number of valid employers will be returned.
NumInvalidIntegerNoN/AValue is passed in by reference. An integer (can be any integer) will be passed in and the number of invalid employers will be returned.
FileContentByteArrayNoN/AFile (to be filled) containing a detailed analysis of the submitted file invalid lines.

The Return value(s) are as follows:

TypeLength min/maxDescription
String1-100Returns "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:

ParameterTypeRequiredLength min/maxDescription
UTIDStringYesN/AThis 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:

TypeLength min/maxDescription
String1-100 Returns "True" on success. Returns an error message on failure.
Prerequisite Note: Must have submitted a valid MMREF, NASWA or Payment file.

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:

ParameterTypeRequiredLength min/maxDescription
UTIDStringYesN/AThis Unique Transaction Identifier (UTID) that was returned by the SubmitFile() method. The UTID is used to identify the file that was submitted.
ConfirmationStringNoN/AThe confirmation number used to identify a committed file for processing.
CommitDateStringNoN/AThe date you successfully committed your information to be processed as a string.
TotalsDoubleNoN/AThe total number of accounts committed for processing, or the total number of dollars made for payments, depending on the file type you submitted.
AccountsInt ArrayNoN/AA list of valid accounts that will be processed after a commit has been submitted.

The Return value(s) are as follows:

TypeLength min/maxDescription
String1-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:

ParameterTypeRequiredLength min/maxDescription
UTIDStringYesN/AThis 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:

TypeLength min/maxDescription
String1-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.