Skip to main content
The STE supports a flexible framework for handling employer and employee benefits. It ships with a set of predefined benefit types, lets you configure custom benefits, and applies default taxability rules that determine — for each tax and benefit type — whether employee contributions are treated as pre-tax and whether employer contributions are included in taxable wages. When those defaults don’t fit a specific scenario, you can override them per calculation.

How benefits affect taxable wages

Benefits change the gross subject wages the engine uses for a tax:
  • Employee pre-tax contributions reduce the wages subject to a tax.
  • Employer contributions that are taxable increase the wages subject to a tax.
For each combination of tax and benefit type, the STE knows the default treatment for both sides. These defaults are the baseline for every calculation unless you set an override.

“Pre-tax” and “post-tax” are per-tax, not global

Whether a benefit is pre-tax or post-tax is always relative to a specific tax — the same benefit can be treated differently by different taxes in the same calculation. A traditional 401(k) employee contribution, for example, is pre-tax for federal income tax (FIT) and most state income taxes (SIT), but post-tax for FICA (Social Security and Medicare). The STE applies the correct treatment for each tax and benefit combination automatically.
“Post-tax” does not mean “taxable.” For an employee contribution, post-tax simply means the contribution does not reduce the wages subject to that tax — it says nothing about whether any amount is itself added to taxable wages. Whether an employer contribution is taxable is a separate question, answered per tax and benefit type.
The two sides behave differently:
  • Employee contributions either reduce the wages subject to a tax (pre-tax) or don’t (post-tax).
  • Employer contributions are never pre-tax. Depending on the benefit type and tax, they are either included in taxable wages or not.
As far as the engine is concerned, all that matters is whether a benefit impacts a tax it is calculating. A benefit can be inert for a given calculation — an employee contribution treated as post-tax and an employer contribution that isn’t taxable — meaning it makes no difference to that result. It’s still worth sending: it may affect other taxes in the same run, and the STE will apply the correct treatment automatically if the rules change (for example, a new effective date or limit).

Predefined benefit types

The STE has 16 predefined benefits: In addition to these predefined types, you can configure custom benefits for full control over the taxability and reporting behavior of additional benefits.

Retrieving benefit information

You can look up general information about any supported benefit type using the get-benefit-information operation. This call is purely informational and is not required before running a calculation.
  • Web API: benefitInfo
  • C & Pascal: ste_get_benefit_info_extended()
  • Java & .NET: getBenefitInfoExtended()
It returns metadata and configuration for the specified benefit based on the pay date provided (set in ste_payroll_run_parameters for on-premise clients, or the BenefitInfoRequest object for API clients).
Request:
Response:
C and Pascal return the response as a JSON string that mirrors the BenefitInfoResponse object in the Web API.

Benefit taxability overrides

Benefit taxability overrides let you change the default treatment for a given calculation when your business rules require it — for example, employee-specific scenarios such as New Jersey SDI.
Overrides are applied per pay calculation and are not saved inside the STE’s database. Setting an override for the same tax, benefit, and side again replaces the earlier value. Overrides clear when your integration clears the calculation session, after which Symmetry defaults apply again.

What you specify

Each override targets one contribution side: You pass:
  • uniqueTaxID: the jurisdiction tax you are overriding (for example, FICA)
  • benefitType: a standard Symmetry benefit type (the same values used elsewhere in your request)
  • benefitContributionType: Employee or Employer
  • isTaxImpacting: the boolean treatment for that contribution side

Setting an override

Place overrides on the relevant taxJurisdictionParms entry, alongside other jurisdiction options such as year-to-date overrides. For C, Java, .NET, or Pascal, use the equivalent method during setup, before you run the calculation.

Limitations

Overrides change how wages and taxes are computed for your call. You are responsible for ensuring overrides reflect valid payroll tax treatment for your clients. Symmetry’s defaults remain the baseline when you do not set an override.

Checking benefit status

You can retrieve the current taxability status for benefits against a tax using the benefit-status operation:
  • Web API: benefitStatus
  • C & Pascal: ste_get_benefit_status_list_ext()
  • Java & .NET: getBenefitStatusListExt()
Request:
Response: