Skip to main content
The Java SDK wraps the native STE library and exposes a single entry class, STEPayrollCalculator, in the com.symmetry.ste package. This quickstart runs a federal + California state calculation for one employee using the modern STE2-style configuration.
STE2-style configures every tax through two calls — setJurisdictionData(...) and setJurisdictionMiscellaneousParms(...) — using a uniqueTaxID. Prefer this over the legacy per-tax setters (setFederalParameters, setStateParameters, …).

Prerequisites

1

Get the SDK and tax database

You need the STE JAR, the native library for your platform (libste.so / libste.dylib / ste.dll), and an STE home directory that contains the tax database. These are provided with your STE license.
2

Put the native library on the load path

The JAR loads the native library at runtime. Make sure it’s discoverable — see Linking the native library for the per-platform details (LD_LIBRARY_PATH, rpath, or PATH).

Calculate

What each step does

setWages takes gross by period bucket: (hours, ctd, mtd, qtd, ytd). Use Money.zero() for buckets you’re not tracking. The typed wrappers (Money, Hours, Rate) prevent unit mix-ups.

Handles, threads, and pooling

An STEPayrollCalculator handle is not thread-safe — use one handle per thread. Initialization has a cost, so for high volume you reuse handles rather than creating one per calculation. See Handles & pooling.

Next steps

Full calculation walkthrough

Install the interface and run a complete, realistic pay calc end to end.

Configuring a calculation

Wages, jurisdictions, benefits, and engine options in depth.

Migrating from STE1-style

Map legacy per-tax setters onto STE2-style calls.