Skip to main content
The .NET SDK is a managed assembly that wraps the native STE library via P/Invoke. It exposes STEPayrollCalculator in the Symmetry.TaxEngine namespace, mirroring the Java SDK method-for-method. This quickstart runs a federal + California state calculation for one employee using the modern STE2-style configuration.
STE2-style configures every tax through setJurisdictionData(...) + setJurisdictionMiscellaneousParms(...) using a uniqueTaxID. Prefer it over the legacy per-tax setters. (The shipped HelloPayrollWorld sample still uses STE1-style calls — use this page as the STE2 template instead.)

Prerequisites

1

Get the SDK and tax database

You need the STE .NET assembly, the native library for your platform (ste.dll / libste.so / libste.dylib), and an STE home directory containing the tax database. These come with your STE license.
2

Put the native library on the load path

On Windows, keep ste.dll on PATH or alongside your executable. See Linking the native library for other platforms.

Calculate

What each step does

The .NET surface matches Java closely; the main differences are System.DateTime instead of java.util.Date, Dispose() instead of close(), and .tax (struct field) instead of .getTax().

Handles, threads, and pooling

A handle is not thread-safe — use one per thread. For high volume, reuse handles with STEObjectPool (checkOut() / checkIn()) rather than constructing 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.