# GetEcoNexusThresholds

Get economic nexus threshold statuses for a company

`GET /api/v2/companies/{companyId}/econexusthresholds`

**API:** AvaTax API
**Tag:** EcoNexusThreshold
**API Version:** v2
**Base URL:** https://sandbox-rest.avatax.com/
**Accepts:** `application/json`
**Authentication:** API Key (`Authorization` in header) or OAuth 2.0 or Basic (username + license key)

Source: https://developer.avalara.com/products/avatax/api/methods/EcoNexusThreshold/GetEcoNexusThresholds/

## Description

Returns precomputed economic nexus threshold statuses for a company, sourced from an in-memory
cache refreshed periodically from Snowflake. All responses are served from cache;
Snowflake is never queried on the request path.
            
When the optional `region` query parameter is provided, only the matching jurisdiction row
is included in `states`. If no row exists for that company and region, `states` is
an empty array (200 OK).
            
When `lastRefreshedAt` is absent from the response, the cache has not yet completed its
first refresh; callers should treat absence as "cache freshness unknown".
            
Production traffic is served by TPS; api-gateway should route this path to TPS.
            
This endpoint requires the `NexusFetch` permission. If EcoNexus is not configured in TPS,
a 503 is returned with no `Retry-After` (misconfiguration requires redeployment).
If the cache is still initializing, a 503 is returned with `Retry-After: 300`.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, Compliance Root User, ComplianceAdmin, ComplianceUser, CSPAdmin, CSPTester, FirmAdmin, FirmUser, ReturnsOnlyAccountAdmin, ReturnsOnlyAccountUser, ReturnsOnlyCompanyAdmin, ReturnsOnlyCompanyUser, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.

## Parameters

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The Avalara company identifier. |
| `region` | string | query | No | Optional two-letter US state postal code to filter results (case-insensitive).
             When provided, `states` contains at most one item; if there is no data for that company
             and region, `states` is an empty array (200 OK). Must be exactly two characters; otherwise returns 400.
             Matches the `region` field on each item in the response. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

## Responses

| Status | Description | Schema |
|---|---|---|
| 200 | Success | `EcoNexusThresholdsModel` |
| 400 | Bad Request | `ErrorResult` |
| 401 | Unauthorized |  |
| 503 | Server Error | `ErrorResult` |

### 200 Response: `EcoNexusThresholdsModel`

Response model for GET /api/v2/companies/{companyId}/econexusthresholds.

| Property | Type | Required | Description |
|---|---|---|---|
| `companyId` | integer | No | The Avalara company identifier. |
| `states` | ThresholdStateSummaryModel[] | No | Per-state threshold summaries for the company. Empty array if no evaluated data exists. |
| `lastRefreshedAt` | string | No | UTC timestamp of when the TPS in-memory cache last successfully refreshed from Snowflake.
Omitted when a refresh has not yet completed. |

## Example Request

```bash
curl -X GET "https://sandbox-rest.avatax.com/api/v2/companies/{companyId}/econexusthresholds" \
  -H "Authorization: Basic <credentials>" \
  -H "Accept: application/json"
```