Developer Resources

State Taxes

Note: The State Tax API utilizes JSON Patch formatting. Please ensure the use of "application/json-patch+json" in the "Content-Type" header.

 

Standard Fields:

The State Tax API constructs State Taxes using a standard set of fields. These fields are broken up in 2 categories: Required, Defaulted.

 

Required Fields:

The following fields are required for each State Tax, and must be in the ADD operation to successfully add a State Tax to a Worker:

  • countrySubdivisionCode
  • regulationType (this will always be INCOME_TAX)
  • isResidentState
  • stateAllocationPercent
  • correlationID

 

Defaulted Fields:

The following fields are not required for each State Tax, but will be defaulted to certain values if not otherwise specified differently during the ADD operation:

  • filingStatusType
  • taxStatusType
  • Deductions 
  • Extra Withholding Fields

 

Deductions:

Deductions for each state will be automatically generated during the ADD operation and defaulted to 0. These deductions CANNOT be modified during the ADD operation, and can only be REPLACED after the State Tax has been ADDed.

 

Extra Withholding Fields:

Similar to the Federal Tax API, additionalAmount, flatDollarOverride, additionalPercent, overridePercent are subject to certain valid field combinations. These are explained in the endpoint documentation for each State Tax endpoint

 

State Specific Fields:

Some states do not follow the field standards as set above. Below is a list of each state and how it differs from the set field standards.

 

Arizona:

Defaulted Fields:

  • filingStatusType - this field is not used
  • withholdingPercent - this is an added field that is specific to Arizona

 

Arkansas:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Connecticut:

Defaulted Fields:

  • reductionalAmount - this field is an added Defaulted Field that is specific to Connecticut

 

Illinois:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Indiana:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Kentucky:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Maryland:

Required Fields:

  • countyName - this field is an added Required Field that is specific to Maryland when isResidentState is TRUE

 

Michigan:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Ohio:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Pennsylvania:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Utah:

Defaulted Fields:

  • filingStatusType - this field is not required, but must be ADDed in order to change its value if needed

Note: You may not see filingStatusType in the response body for Utah's State Tax. This means that the field is defaulting to the Federal Tax filingStatusType

 

Virginia:

Defaulted Fields:

  • filingStatusType - this field is not used

 

Exempt from State Income Tax:

This section focuses on the EXEMPT taxStatusType, which sets the Taxibility field in FLEX to "Employee is not taxable...", and must be done by contacting PAYCHEX support to set up, or now by using the API to set the worker to not be taxable. This is not to be confused with the EXEMPT_FROM_WITHOLDING taxStatusType, which is the taxStatusType you can select in FLEX by choosing the "No" option for the Taxes Withheld field. If a worker is taxable, you should use the EXEMPT_FROM_WITHOLDING taxStatusType. If they are completely not taxable, then you should use the EXEMPT taxStatusType.

 

Allowable Fields:

The following fields are the only fields allowed when setting taxStatusType to EXEMPT:

  • Required Fields
  • taxStatusType
  • countyName (Maryland only)
  • withholdingPercent (Arizona only)
  • exemptionReasonDescription

 

Disallowed Fields:

All other fields not described above are not allowed in any request operation where taxStatusType is EXEMPT. Doing so will throw an error.

 

States without Income Tax:

Some states do not collect income tax. These states are still able to be added to a Worker to properly allocate state income tax allocation percentages. States that do not collect an income tax should be ADDed using only the standard Required Fields. REPLACE operations remain valid for any allowed field. 

 

Error Codes:

Below are the error codes that can be returned by the State Tax API. When applicable, the errors will identify which part of the call failed via correlationId, the field name that failed, and that fields value, and any other value information regarding minimums and/or maximums, expected values, value type, etc..

Error Code
Description of Error
TAX100
A required field was not provided in the request
TAX101
A numerical field in the request did not fall in the expected min/max value range
TAX102
A value was specified however it is not valid (example, the value is not one of an expected enumeration)
TAX107
A specified identifier was invalid (workerTaxId, etc.)
TAX108
One of the following fields must be specified but were not
TAX109
A textual field exceeded the maximum length
TAX111
The worker does not have a resident state
TAX112
The worker has more than one resident state
TAX114
The state allocation percentage does not sum to 100
TAX116
Extra withholding choices were specified in an invalid configuration
TAX117
The worker tax has an end date that is not on or before the end date of the client tax
TAX122
The state tax being added to the worker already exists
TAX131
Combined worker and client tax amounts cannot be more than system level totals
TAX135

For a full time worker that is taxable on a tax configured for "not paid by Employer portion", 
the employee percent can't be more than the employee system percent
TAX147
The worker has unprocessed checks that prevent changes to the taxes 
TAX154
The state tax being added is for an unsupported US Territory on a PEO client
TAX163
The request specified fields that are not allowed/supported
TAX167
The state tax being added has no client tax setup
TAX176
Duplicate correlationId in request
TAX177
Duplicate state tax in request
TAX178
The specified worker is of a type that is unsupported
TAX500
Internal server error
TAX989
Internal server error