> ## Documentation Index
> Fetch the complete documentation index at: https://docs-test.symmetry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hosted API vs. On-Premise SDK

> Choosing between the hosted STE Web API and the locally installed On-Premise SDK.

The core Symmetry Tax Engine is available two ways: as a **hosted Web 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*.

<Info>
  Both options cover U.S. and Canadian payroll calculations. When Symmetry updates tax tables or rates, both reflect those changes — the Web API is updated by Symmetry, and the On-Premise SDK is updated when you download a new release.
</Info>

## The hosted Web API

The STE Web 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, `.../v2/setTaxList`).
* 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](/ste/quickstarts/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 includes the `ste-interface-files`, `ste-root`, and `ste-shared-libraries` folders plus a `versions.json` file. A valid `ste-license.dat` license file must be present in `ste-root` — **the engine will not function without it.**
* 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](/ste/overview/platform-and-language-support). To get started, choose your language quickstart:

<CardGroup cols={3}>
  <Card title="Java SDK" icon="java" href="/ste/quickstarts/java-sdk-quickstart" />

  <Card title=".NET SDK" icon="microsoft" href="/ste/quickstarts/dotnet-sdk-quickstart" />

  <Card title="C/C++ SDK" icon="c" href="/ste/quickstarts/c-sdk-quickstart" />
</CardGroup>

## At a glance

|                       | Hosted Web API                | On-Premise SDK                        |
| --------------------- | ----------------------------- | ------------------------------------- |
| **Where it runs**     | Symmetry's servers            | Your own hardware                     |
| **How you integrate** | REST / JSON over HTTPS        | Native C/C++, Java, or .NET interface |
| **Installation**      | None                          | Download engine + license file        |
| **Updates**           | Managed by Symmetry           | You download new releases             |
| **Credentials**       | Staging & production API keys | `ste-license.dat` license file        |
| **Coverage**          | US and Canada                 | US and Canada                         |

## 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 Web API uses, and deserializing the response the same way — the On-Premise SDK and the hosted Web 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 Web 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.

<Note>
  The hosted Web API and the On-Premise SDK are licensed separately. Running both at once requires the appropriate license for each. See [Licensing](/ste/overview/licensing).
</Note>

## Licensing

Both options require a license from Symmetry — an API key for the Web API and a license file for the On-Premise SDK. See [Licensing](/ste/overview/licensing) for details.
