Skip to main content
The core Symmetry Tax Engine is available two ways: as a hosted API that Symmetry runs for you, or as an on-premise SDK that you install and run on your own systems. Both reach the same calculation engine — same tax tables, same logic, same results — so the choice comes down to where the engine runs and how you want to operate it.
Both options cover U.S. and Canadian payroll calculations. When Symmetry updates tax tables or rates, both reflect those changes — the hosted API is updated by Symmetry, and the on-premise SDK is updated when you download a new release.

The hosted API

The STE Hosted API is a REST service hosted by Symmetry. You send JSON requests to Symmetry’s endpoints and receive calculation results back — there is nothing to install or maintain locally.
  • Access is over https only, using an API key in the Authorization header. Symmetry provides a staging key when your trial begins and a production key once you license the STE.
  • The staging base URL is https://ste-staging.symmetry.com/ste-hosted/, with a schema version and endpoint name appended (for example, .../v1/locationTax).
  • Symmetry manages the servers, tax-table updates, and scaling.
Best for: teams that want the fastest path to production, minimal operational overhead, and no local infrastructure to manage. To get started, see the hosted API Quickstart.

The on-premise SDK

The on-premise SDK is the tax engine installed and running inside your own environment. You download the engine and a license file from Symmetry’s Download Center and integrate it into your application through a native interface.
  • Available for C/C++, Java, and .NET.
  • An installation unzips into a single flat directory holding the native shared library, the tax database (ste.db), ste.conf, versions.json, and an ste-interface-files folder. A valid license must be present — either ste-license.dat in that directory or the STE_LICENSE_KEY environment variable. The engine will not function without one.
  • You run the engine on your own hardware and control when to apply new releases.
Best for: teams that need the engine to run within their own infrastructure — for data residency, latency, offline operation, or control over update timing. For platform requirements and sizing guidance, see Platform and Language Support. To get started, choose your language quickstart:

Java SDK

.NET SDK

C/C++ SDK

At a glance

Build once, switch deployment models

You don’t have to commit to one model forever. If you build your integration against the STE’s JSON schema — serializing your payroll data into the same request format the hosted API uses, and deserializing the response the same way — the on-premise SDK and the hosted API become largely interchangeable. Both accept the same request format and return the same results, so moving between them is mostly a matter of changing where you point: at an STE instance running on your own servers, or at Symmetry’s hosted endpoint. This flexibility is useful in several ways:
  • Start on one, move to the other. Begin hosted for the fastest path to production, then move on-premise later if you want more control over performance, scalability, or update timing — or start on-premise and offload operations to hosted without rewriting your integration.
  • Run both if your architecture calls for it. The hosted API is engineered for near-100% uptime, but some customers with the strictest availability requirements choose to run the on-premise SDK alongside it for added redundancy.
The hosted API and the on-premise SDK are licensed separately. Running both at once requires the appropriate license for each. See Licensing.

Licensing

Both options require a license from Symmetry — an API key for the hosted API and a license file for the on-premise SDK. See Licensing for details.