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

# List jurisdictions

> One item per jurisdiction the account touches, country and state level: one with a registration (requested, in progress or complete), with tax collection set up, or with nexus activity. Each item carries the resolved nexus exposure (`nexus`) and the registration state (`registration`, null when the account has no registration there). Sorted by jurisdiction code, not paginated. `nexus_study` says where the account is on the road to a finished economic nexus study, so callers never have to infer it from the rows.

To check whether Taxwire collects tax in a jurisdiction now, read `is_collecting` on its item. With no item, or `is_collecting` false, calculations return zero tax there. Don't infer it from `nexus.status`, `registration.status` or the collection dates.

Lists the countries and US states your account touches, each with its nexus exposure and registration. A jurisdiction is listed once you have a registration there (requested, in progress or complete), tax collection set up there, or nexus activity there. A registration you have just requested shows up before you have any sales in that jurisdiction.

* The response is the whole list, sorted by `code`: no paging, and `has_more` is always false.
* A country's `code` is its ISO 3166 alpha-3 code (`ESP`, `SWE`). A US state's is `USA.S-` and its two-letter code (`USA.S-CA`).
* `registration` is null when you have no registration in that jurisdiction.
* Collection dates are in the jurisdiction's local time.
* `nexus_study` tells you whether your economic nexus study has finished, so you don't have to infer it from the rows.

## Does Taxwire collect tax in a jurisdiction?

Find the item for that `code` and read `is_collecting`. If there is no item, or `is_collecting` is false, [calculations](https://apidocs.taxwire.com/api-reference/calculations/create.md) return zero tax for that jurisdiction.

When `is_collecting` is true, Taxwire collects that country's or state's tax. A line can still come to zero tax, for example an exempt product or customer. Local taxes registered separately, such as Colorado home-rule cities, aren't covered by the state's item.

Don't work it out from `nexus.status`, `registration.status` or the collection dates:

* A registration can be `COMPLETE` before collection starts.
* `nexus.status` says whether you owe tax there, not whether Taxwire collects it.
* Collection can stop and restart. `collection_start` is the earliest start, and `collection_end` stays null while a later period is still to come, so the dates alone can look like collection is on during a gap.

```json theme={null}
{
  "object": "list",
  "url": "/jurisdictions",
  "has_more": false,
  "nexus_study": { "status": "COMPLETE", "completed_at": "2026-09-27T03:14:09Z" },
  "data": [
    {
      "code": "ESP",
      "name": "Spain",
      "type": "country",
      "is_collecting": true,
      "nexus": { "status": "REMITTING", "has_economic_nexus": false, "has_physical_nexus": false },
      "registration": {
        "status": "COMPLETE",
        "origin": "NEW",
        "collection_start": "2026-11-01",
        "collection_end": null,
        "filing_cadences": ["QUARTERLY"]
      }
    },
    {
      "code": "SWE",
      "name": "Sweden",
      "type": "country",
      "is_collecting": false,
      "nexus": { "status": "NOT_EXPOSED", "has_economic_nexus": false, "has_physical_nexus": false },
      "registration": {
        "status": "SUBMITTED",
        "origin": "NEW",
        "collection_start": null,
        "collection_end": null,
        "filing_cadences": []
      }
    }
  ]
}
```

Here Taxwire collects tax in Spain. Sweden is listed because a registration was requested there, but calculations return zero tax there until collection starts.


## OpenAPI

````yaml GET /jurisdictions
openapi: 3.1.0
info:
  title: Taxwire Public API
  version: 0.1.0
servers: []
security: []
paths:
  /jurisdictions:
    get:
      tags:
        - Jurisdictions & Returns
      summary: List Jurisdictions
      description: >-
        One item per jurisdiction the account touches, country and state level:
        one with a registration (requested, in progress or complete), with tax
        collection set up, or with nexus activity. Each item carries the
        resolved nexus exposure (`nexus`) and the registration state
        (`registration`, null when the account has no registration there).
        Sorted by jurisdiction code, not paginated. `nexus_study` says where the
        account is on the road to a finished economic nexus study, so callers
        never have to infer it from the rows.


        To check whether Taxwire collects tax in a jurisdiction now, read
        `is_collecting` on its item. With no item, or `is_collecting` false,
        calculations return zero tax there. Don't infer it from `nexus.status`,
        `registration.status` or the collection dates.
      operationId: list_jurisdictions_jurisdictions_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JurisdictionsListResponse'
        '422':
          description: Validation Error - Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '422'
                    code: validation_required_field
                    title: Missing quantity
                    detail: Please provide a value for the required quantity field
                    source:
                      pointer: /data/attributes/line_items/0/quantity
        '429':
          description: Rate limit exceeded. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '429'
                    code: rate_limit_error
                    title: Too Many Requests
                    detail: Rate limit exceeded
          headers:
            Retry-After:
              schema:
                type: string
              description: Time in seconds until the rate limit resets
            X-RateLimit-Limit:
              schema:
                type: string
              description: The rate limit ceiling for the given request
            X-RateLimit-Remaining:
              schema:
                type: string
              description: The number of requests remaining in the time window
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '500'
                    code: system_internal_error
                    title: Internal Error
                    detail: An unexpected error occurred. Our team has been notified.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    JurisdictionsListResponse:
      properties:
        object:
          type: string
          title: Object
          default: list
        url:
          type: string
          title: Url
          default: /jurisdictions
        has_more:
          type: boolean
          title: Has More
          description: More results available
          examples:
            - true
            - false
        data:
          items:
            $ref: '#/components/schemas/Jurisdiction'
          type: array
          title: Data
          description: One item per jurisdiction the account touches, sorted by code.
        nexus_study:
          $ref: '#/components/schemas/NexusStudyBlock'
          description: Status of the economic nexus study for the account.
      type: object
      required:
        - has_more
        - nexus_study
      title: JurisdictionsListResponse
      description: List envelope for GET /jurisdictions.
    ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/Error'
          type: array
          title: Errors
      type: object
      required:
        - errors
      title: ErrorResponse
      description: Standardized JSON:API error response model.
    Jurisdiction:
      properties:
        code:
          type: string
          title: Code
          description: >-
            Canonical jurisdiction code (ltree path). Use this as the
            jurisdiction filter value on GET /returns.
          examples:
            - USA.S-CA
        name:
          type: string
          title: Name
          description: Human-readable jurisdiction name.
          examples:
            - California
        type:
          type: string
          enum:
            - country
            - state
          title: Type
          description: 'Jurisdiction level: country or state.'
          examples:
            - state
        is_collecting:
          type: boolean
          title: Is Collecting
          description: >-
            Whether Taxwire collects tax in this jurisdiction right now. When
            false, calculations return zero tax for this jurisdiction. When
            true, Taxwire collects its state or country level tax; a line can
            still come to zero tax (an exempt product or customer), and local
            taxes registered separately, such as Colorado home-rule cities, are
            not covered by this item.
          examples:
            - true
        nexus:
          $ref: '#/components/schemas/NexusBlock'
          description: Resolved nexus exposure for this jurisdiction.
        registration:
          anyOf:
            - $ref: '#/components/schemas/RegistrationBlock'
            - type: 'null'
          description: >-
            Registration state; null when the account has no registration in
            this jurisdiction.
      additionalProperties: false
      type: object
      required:
        - code
        - name
        - type
        - is_collecting
        - nexus
      title: Jurisdiction
      description: One jurisdiction the account touches.
    NexusStudyBlock:
      properties:
        status:
          type: string
          enum:
            - NOT_STARTED
            - CONNECTED
            - INGESTING
            - COMPLETE
          title: Status
          description: >-
            NOT_STARTED: no platform is connected yet. CONNECTED: a platform is
            linked but ingestion has not been switched on, or its credential has
            expired. INGESTING: transactions are being pulled and the study has
            not produced results yet. COMPLETE: the study has run and its
            results are on the `data` rows.
          examples:
            - COMPLETE
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
          description: >-
            When the finished study's results were applied to the rows. Null
            until the study completes, and null on a COMPLETE study whose rows
            were loaded without a calculation run.
          examples:
            - '2026-09-27T03:14:09Z'
      additionalProperties: false
      type: object
      required:
        - status
      title: NexusStudyBlock
      description: |-
        Where the account is on the road to a finished economic nexus study.

        Physical nexus is derived live from presence records and never waits on
        the study, so it is not part of this block; the per-jurisdiction rows
        carry it.
    Error:
      properties:
        status:
          type: string
          title: Status
        code:
          type: string
          title: Code
        title:
          type: string
          title: Title
        detail:
          type: string
          title: Detail
        source:
          anyOf:
            - $ref: '#/components/schemas/ErrorSource'
            - type: 'null'
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
      type: object
      required:
        - status
        - code
        - title
        - detail
      title: Error
      description: Individual JSON:API error object.
    NexusBlock:
      properties:
        status:
          $ref: '#/components/schemas/NexusStatusEnum'
          description: >-
            Resolved, registration-aware nexus status. One of NO_SALES_TAX,
            NOT_EXPOSED, EXPOSED, APPROACHING, CROSSED_THRESHOLD, REMITTING,
            PREVIOUSLY_REGISTERED.
          examples:
            - CROSSED_THRESHOLD
        has_physical_nexus:
          type: boolean
          title: Has Physical Nexus
          description: Whether the account has physical presence in this jurisdiction.
          default: false
          examples:
            - false
        has_economic_nexus:
          type: boolean
          title: Has Economic Nexus
          description: >-
            Whether the account has crossed the economic nexus threshold in this
            jurisdiction.
          default: false
          examples:
            - true
        physical_nexus_type:
          anyOf:
            - $ref: '#/components/schemas/PhysicalNexusType'
            - type: 'null'
          description: >-
            Type of physical presence: office, employees, warehouse, inventory,
            affiliate, or other. Null when the account has no physical nexus in
            this jurisdiction.
          examples:
            - warehouse
        physical_nexus_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Physical Nexus Date
          description: Date physical nexus began in this jurisdiction, if any.
          examples:
            - '2025-08-01'
        economic_sales_total:
          anyOf:
            - type: string
            - type: 'null'
          title: Economic Sales Total
          description: >-
            Total sales counted toward the economic threshold, measured over
            this jurisdiction's nexus lookback period (not lifetime or
            calendar-year sales). Expressed as an integer string in hundredths
            of the currency's major unit (cents for USD) — the same x100 scale
            for every currency, so `"100"` is 1.00 of the currency unit ($1.00
            in USD).
          examples:
            - '51200000'
        economic_taxable_sales:
          anyOf:
            - type: string
            - type: 'null'
          title: Economic Taxable Sales
          description: >-
            Taxable portion of the sales counted toward the economic threshold,
            over the same lookback period. Expressed as an integer string in
            hundredths of the currency's major unit (cents for USD) — the same
            x100 scale for every currency, so `"100"` is 1.00 of the currency
            unit ($1.00 in USD).
          examples:
            - '49800000'
        economic_transactions_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Economic Transactions Count
          description: Transaction count toward the economic threshold.
          examples:
            - 1820
        economic_threshold_percent:
          anyOf:
            - type: string
            - type: 'null'
          title: Economic Threshold Percent
          description: >-
            Progress toward the economic threshold, in percent, capped at 100 by
            the nexus engine — 100.00 means the threshold has been reached. For
            jurisdictions requiring both a sales and a transaction-count
            threshold, this is the lower (constraining) of the two.
          examples:
            - '49.87'
        economic_threshold_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Economic Threshold Date
          description: Date the economic threshold was crossed, if it has been.
          examples:
            - '2026-03-11'
        last_updated:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Updated
          description: When the nexus figures were last recomputed.
          examples:
            - '2026-06-01T09:12:00Z'
      additionalProperties: false
      type: object
      required:
        - status
      title: NexusBlock
      description: >-
        Resolved nexus picture for one jurisdiction.


        Only the registration-aware resolved status is exposed; internal
        override

        fields never leave the house.
    RegistrationBlock:
      properties:
        status:
          anyOf:
            - $ref: '#/components/schemas/PoliticalDivisionRegistrationStatus'
            - type: 'null'
          description: >-
            Registration status, progressing DRAFT → PREPARING → SUBMITTED →
            APPROVED_AWAITING_CREDENTIALS → VERIFICATION → COMPLETE. DECLINED
            means the jurisdiction rejected the submission; CLOSED means the
            registration has been closed.
          examples:
            - COMPLETE
        origin:
          anyOf:
            - $ref: '#/components/schemas/PoliticalDivisionRegistrationOrigin'
            - type: 'null'
          description: >-
            Whether Taxwire filed the registration (NEW), the account brought an
            existing one (EXISTING), or the license type of an existing
            registration was changed (LICENSE_CHANGE).
          examples:
            - NEW
        collection_start:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Collection Start
          description: >-
            First day of tax collection in this jurisdiction, in its local time.
            Null until collection is set up, which can be after the registration
            is COMPLETE. Use `is_collecting` to tell whether collection is on
            now: collection can stop and restart, and this is the earliest
            start.
          examples:
            - '2026-04-01'
        collection_end:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Collection End
          description: >-
            Day tax collection ended, in the jurisdiction's local time; null
            while collection is ongoing or set to restart.
          examples:
            - null
        filing_cadences:
          items:
            $ref: '#/components/schemas/FilingFormCadenceType'
          type: array
          title: Filing Cadences
          description: >-
            Filing cadences for the registered forms: MONTHLY, QUARTERLY,
            SEMI_ANNUAL, or ANNUAL.
          examples:
            - - QUARTERLY
      additionalProperties: false
      type: object
      title: RegistrationBlock
      description: >-
        Registration state for one jurisdiction.


        Shape is under active redesign (data model revision); keep all consumers

        going through build_jurisdiction_resource so columns can swap in one
        place.
    ErrorSource:
      properties:
        pointer:
          anyOf:
            - type: string
            - type: 'null'
          title: Pointer
      type: object
      title: ErrorSource
      description: Identifies the source of the error, e.g., via a JSON Pointer.
    NexusStatusEnum:
      type: string
      enum:
        - NO_SALES_TAX
        - NOT_EXPOSED
        - EXPOSED
        - APPROACHING
        - CROSSED_THRESHOLD
        - REMITTING
        - PREVIOUSLY_REGISTERED
      title: NexusStatusEnum
      description: Enumeration of possible nexus statuses.
    PhysicalNexusType:
      type: string
      enum:
        - office
        - employees
        - warehouse
        - inventory
        - affiliate
        - other
      title: PhysicalNexusType
      description: Enumeration of physical nexus types.
    PoliticalDivisionRegistrationStatus:
      type: string
      enum:
        - DRAFT
        - PREPARING
        - SUBMITTED
        - DECLINED
        - APPROVED_AWAITING_CREDENTIALS
        - VERIFICATION
        - COMPLETE
        - CLOSED
      title: PoliticalDivisionRegistrationStatus
      description: >-
        Status of a political division registration.


        The ordering reflects the setup progress workflow: a registration
        generally

        moves down this list, though valid transitions depend on the setup type

        (see ``PoliticalDivisionRegistrationOrigin``).
    PoliticalDivisionRegistrationOrigin:
      type: string
      enum:
        - EXISTING
        - NEW
        - LICENSE_CHANGE
      title: PoliticalDivisionRegistrationOrigin
      description: >-
        Setup type of a political division registration.


        Surfaced in the UI as "Setup Type". ``NEW`` and ``EXISTING`` map to

        "New Registration" and "Existing Registration"; ``LICENSE_CHANGE``
        covers

        workflows such as changing an SST registration to a Standard
        registration or

        moving from an out-of-state seller license to an in-state license type.
    FilingFormCadenceType:
      type: string
      enum:
        - MONTHLY
        - QUARTERLY
        - SEMI_ANNUAL
        - ANNUAL
      title: FilingFormCadenceType
      description: Enum for filing form cadence types.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.