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

# Get registration thresholds

> Get registration threshold exposure for a corporation. By default, returns US-state-level data. Pass `v2=true` to get global jurisdiction-level data covering US, Canada, UK, and EU jurisdictions, including support for multiple exposure rules per jurisdiction (for example, EU Union OSS, Non-Union OSS, and IOSS).



## OpenAPI

````yaml GET /nexus
openapi: 3.0.1
info:
  title: Commenda Public APIs
  description: >-
    APIs for Commenda entity management, partner incorporation, indirect tax,
    compliance, and corporate operations.
  license:
    name: NONE
    url: NONE
  version: 1.0.0
servers:
  - url: https://api.prod.commenda.io/api/v1
    description: Commenda platform APIs, including Partner Incorporation and Commenda OS.
  - url: https://transaction-tax.api.in.commenda.io/api/v1
    description: Global Indirect Tax API.
security:
  - bearerAuth: []
paths:
  /nexus:
    get:
      summary: Get registration threshold exposure
      description: >-
        Get registration threshold exposure for a corporation. By default,
        returns US-state-level data. Pass `v2=true` to get global
        jurisdiction-level data covering US, Canada, UK, and EU jurisdictions,
        including support for multiple exposure rules per jurisdiction (for
        example, EU Union OSS, Non-Union OSS, and IOSS).
      operationId: getNexusDetails
      parameters:
        - name: corporation_id
          in: query
          description: >-
            The unique identifier for the corporation to retrieve registration
            threshold data for.
          required: true
          schema:
            type: string
        - name: v2
          in: query
          description: >-
            Set to `true` to use the global registration threshold engine. When
            enabled, the response uses a `jurisdictions` array with expanded
            fields including `jurisdiction_id`, `exposure_type`,
            `exposure_rule_id`, `subdivision`, and `currency`. When omitted or
            `false`, the legacy response format with a `states` array is
            returned.
          required: false
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
      responses:
        '200':
          description: Registration threshold exposure data
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    title: Default response
                    description: Returned when `v2` is not set or `false`.
                    properties:
                      data:
                        $ref: '#/components/schemas/NexusResponse'
                      message:
                        type: string
                        example: Successfully fetched nexus.
                  - type: object
                    title: V2 response
                    description: Returned when `v2=true`.
                    properties:
                      data:
                        $ref: '#/components/schemas/NexusV2Response'
                      message:
                        type: string
                        example: Successfully fetched nexus.
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    NexusResponse:
      type: object
      description: >-
        Default response when `v2` is not set or `false`. Returns US-state-level
        registration threshold data.
      properties:
        corporation_id:
          type: string
          description: >-
            The unique identifier for a corporation associated with this nexus
            details.
          example: b6d009b0-d174-463f-b030-94643c28e209
        states:
          type: array
          items:
            $ref: '#/components/schemas/EconomicExposure'
    NexusV2Response:
      type: object
      description: >-
        Response when `v2=true`. Returns global jurisdiction-level registration
        threshold data covering US, Canada, UK, and EU jurisdictions.
      properties:
        corporation_id:
          type: string
          description: The unique identifier for the corporation.
          example: b6d009b0-d174-463f-b030-94643c28e209
        jurisdictions:
          type: array
          description: >-
            Registration threshold exposure data for each jurisdiction. A single
            jurisdiction may appear multiple times if multiple exposure rules
            apply (for example, EU Union OSS and Non-Union OSS).
          items:
            $ref: '#/components/schemas/JurisdictionExposure'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: 'Specific Error type. Example: CLIENT_INVALID_REQUEST_BODY.'
              example: CLIENT_INVALID_REQUEST_BODY
            doc_url:
              type: string
              description: >-
                A link to the docs with details about this error. Example:
                https://sales-tax-docs.commenda.io/
              example: https://sales-tax-docs.commenda.io/
            title:
              type: string
              description: >-
                A short title describing the error. Example: Missing query
                parameters.
              example: Failed to validate the request body
            detail:
              type: string
              description: >-
                A json string with a description on how to fix the error.
                Example {"description":"Please pass in a valid corporation_id"}
            status:
              type: number
              description: >-
                The status code. It should be the same as the HTTP protocol
                status code. Example: 200
              example: 400
            instance:
              type: string
              description: >-
                The relative path that was hit by the user. Example:
                /api/v1/corporations/1
            Errors:
              type: array
              items:
                type: object
                properties:
                  details:
                    type: string
                    description: More details on how to solve this particular error.
                  pointer:
                    type: string
                    description: >-
                      Relative reference to missing or invalid piece of passed
                      information.
    EconomicExposure:
      type: object
      required:
        - state
        - rule
        - calculation
      properties:
        state:
          $ref: '#/components/schemas/State'
        rule:
          $ref: '#/components/schemas/NexusRule'
        calculation:
          $ref: '#/components/schemas/CalculationObject'
        is_nexus_breached:
          type: boolean
          description: Indicates whether the nexus threshold has been breached.
        date_of_breach:
          type: string
          format: date
          description: The date when the nexus threshold was breached, if applicable.
    JurisdictionExposure:
      type: object
      required:
        - jurisdiction_id
        - jurisdiction_type
        - jurisdiction_name
        - exposure_type
        - exposure_rule_id
        - currency
        - rule
        - calculation
        - is_nexus_breached
      properties:
        jurisdiction_id:
          type: string
          description: Commenda's internal jurisdiction identifier.
          example: US_CA_1000
        jurisdiction_type:
          type: string
          description: The type of jurisdiction.
          enum:
            - STATE
            - STATE_OR_PROVINCE
            - COUNTRY
            - TRADEBLOC
          example: STATE
        jurisdiction_name:
          type: string
          description: >-
            Human-readable name of the jurisdiction (e.g., "California", "United
            Kingdom", "EU Union OSS").
          example: California
        exposure_type:
          type: string
          description: The type of exposure rule being evaluated.
          enum:
            - EXPOSURE_PHYSICAL
            - EXPOSURE_ECONOMIC
            - EXPOSURE
          example: EXPOSURE
        exposure_rule_id:
          type: string
          description: Unique identifier for the exposure rule being evaluated.
          example: US_CA_ECONOMIC_001
        subdivision:
          type: string
          description: State or province code within the country, if applicable.
          example: CA
        currency:
          type: string
          description: ISO 4217 currency code used for threshold amounts.
          example: USD
        rule:
          $ref: '#/components/schemas/NexusRuleV2'
        calculation:
          $ref: '#/components/schemas/CalculationObjectV2'
        is_nexus_breached:
          type: boolean
          description: Whether the registration threshold has been exceeded for this rule.
        date_of_breach:
          type: string
          format: date
          description: The earliest date the threshold was exceeded, if applicable.
        recommended_registration_content_ids:
          type: array
          nullable: true
          description: >-
            Content identifiers of the recommended tax registrations for this
            jurisdiction and exposure rule. Use these values with the V2
            registration content APIs to look up registration details. Null or
            empty when no specific registrations are recommended.
          items:
            type: string
          example:
            - REG_STATE_CEN_06_1000
    State:
      type: string
      example: CA
      description: >-
        2-letter code for each state. Suffix of the ISO 3166-2 code. Ex: CA, NY,
        TX.
    NexusRule:
      type: object
      required:
        - threshold_type
        - evaluation_period_type
        - includable_sales_type
      properties:
        sales_threshold:
          type: number
          description: >-
            The maximum gross sales revenue a business can generate within a
            state before it must collect and remit sales tax. This threshold is
            a key determinant in establishing economic nexus.
          example: 100000
        transactions_threshold:
          type: number
          description: >-
            The maximum number of sales transactions a business can conduct
            within a state before it must collect and remit sales tax. This
            threshold helps determine economic nexus.
          example: 200
        threshold_type:
          $ref: '#/components/schemas/ThresholdType'
          description: >-
            Specifies the criteria used by a state to calculate its economic
            nexus threshold, such as sales revenue or transaction count.
        evaluation_period_type:
          $ref: '#/components/schemas/EvaluationPeriod'
          description: >-
            Defines the time frame over which a state evaluates economic nexus,
            impacting which transactions count towards the threshold.
        includable_sales_type:
          $ref: '#/components/schemas/IncludableSalesType'
          description: >-
            Indicates the type of sales included in the nexus calculation, such
            as all sales, taxable sales, or retail sales.
    CalculationObject:
      type: object
      required:
        - sales_exposure_percentage
        - transactions_exposure_percentage
        - total_sales
        - total_transactions
      properties:
        total_sales:
          type: number
          description: >-
            Total sales made by the customer in a state during the current
            evaluation period.
          example: 0
        total_transactions:
          type: integer
          description: >-
            Total number of transactions reported by the entity in a state
            during the current evaluation period.
          example: 0
        gross_sales:
          type: number
          description: >-
            Total gross sales made by the customer in a state during the current
            evaluation period.
          example: 0
        gross_transactions:
          type: integer
          description: >-
            Total number of gross transactions reported by the entity in a state
            during the current evaluation period.
          example: 0
        taxable_sales:
          type: number
          description: >-
            Total taxable sales made by the customer in a state during the
            current evaluation period.
          example: 0
        taxable_transactions:
          type: integer
          description: >-
            Total number of taxable transactions reported by the entity in a
            state during the current evaluation period.
          example: 0
        retail_sales:
          type: number
          description: >-
            Total retail sales made by the customer in a state during the
            current evaluation period.
          example: 0
        retail_transactions:
          type: integer
          description: >-
            Total number of retail transactions reported by the entity in a
            state during the current evaluation period.
          example: 0
        sales_exposure_percentage:
          type: number
          description: >-
            The percentage of the state's sales threshold that the business has
            reached during the current evaluation period for this state. This
            metric indicates how close a business is to reaching or exceeding
            the sales threshold for economic nexus in a given state.
          example: 0
          minimum: 0
          maximum: 1
        transactions_exposure_percentage:
          type: number
          description: >-
            The percentage of the state's transaction threshold that the
            business has reached during the current evaluation period for this
            state. This metric shows how close a business is to reaching or
            exceeding the transaction threshold for economic nexus in a given
            state.
          example: 0
          minimum: 0
          maximum: 1
        includable_sales_type:
          type: string
          description: The type of sales included in the nexus calculation.
          example: GROSS
    NexusRuleV2:
      type: object
      required:
        - threshold_type
        - evaluation_period_type
        - location_based_scope
        - exclusion_types
        - establishment_types
      properties:
        sales_threshold:
          type: number
          nullable: true
          description: >-
            The sales revenue threshold that triggers a registration obligation,
            in the jurisdiction's currency. Null if the rule does not use a
            sales threshold.
          example: 100000
        transactions_threshold:
          type: integer
          nullable: true
          description: >-
            The transaction count threshold that triggers a registration
            obligation. Null if the rule does not use a transaction threshold.
          example: 200
        threshold_type:
          $ref: '#/components/schemas/ThresholdType'
        evaluation_period_type:
          $ref: '#/components/schemas/EvaluationPeriod'
        location_based_scope:
          type: string
          description: >-
            Defines which transactions count toward the threshold based on the
            geographic relationship between buyer and seller.
          enum:
            - DESTINATION
            - WORLDWIDE
            - INTRA_COMMUNITY
            - IMPORT
          example: DESTINATION
        exclusion_types:
          type: array
          description: >-
            Transaction types automatically excluded from threshold calculations
            for this rule (e.g., marketplace, B2B, resale).
          items:
            type: string
          example:
            - TRANSACTION.MARKETPLACE
            - CUSTOMER.B2B
        establishment_types:
          type: array
          description: >-
            Business establishment types that determine which variant of the
            rule applies (e.g., resident vs. non-resident).
          items:
            type: string
          example: []
        max_transaction_value:
          type: integer
          nullable: true
          description: >-
            Maximum value per transaction for inclusion in threshold
            calculations. Transactions exceeding this cap are excluded. Used by
            schemes like IOSS where only consignments at or below €150 are
            included.
    CalculationObjectV2:
      type: object
      required:
        - included_sales
        - included_transactions
        - gross_sales
        - gross_transactions
        - sales_exposure_percentage
        - transactions_exposure_percentage
      properties:
        included_sales:
          type: number
          description: >-
            Sales amount included in the threshold calculation for this rule,
            based on the rule's includable sales type. Expressed in the
            jurisdiction's currency.
          example: 75000
        included_transactions:
          type: integer
          description: >-
            Number of transactions included in the threshold calculation for
            this rule.
          example: 150
        gross_sales:
          type: number
          description: Total gross sales in the jurisdiction during the evaluation period.
          example: 80000
        gross_transactions:
          type: integer
          description: >-
            Total gross transaction count in the jurisdiction during the
            evaluation period.
          example: 160
        sales_exposure_percentage:
          type: number
          description: >-
            Percentage of the sales threshold reached (0 to 1). Values above 1
            indicate the threshold has been exceeded.
          example: 0.75
          minimum: 0
        transactions_exposure_percentage:
          type: number
          description: >-
            Percentage of the transaction threshold reached (0 to 1). Values
            above 1 indicate the threshold has been exceeded.
          example: 0.75
          minimum: 0
    ThresholdType:
      description: >-
        Specifies how a state calculates its economic nexus threshold. This
        determines which criteria a state uses to establish whether a business
        has reached nexus and is required to collect and remit sales tax. Some
        states consider only sales revenue, some only the number of
        transactions, and others consider both factors.
      type: string
      example: SALES_OR_TRANSACTIONS
      enum:
        - SALES_ONLY
        - SALES_OR_TRANSACTIONS
        - SALES_AND_TRANSACTIONS
    EvaluationPeriod:
      type: string
      description: >-
        The time frame over which a state evaluates economic nexus. Transactions
        within this period are counted towards the nexus threshold.
      enum:
        - PREVIOUS_CALENDAR_YEAR
        - PREVIOUS_OR_CURRENT_CALENDAR_YEAR
        - PRECEDING_12_MONTHS
        - PRECEDING_FISCAL_YEAR
        - PRECEDING_12_MONTHS_ENDING_SEPT_30
    IncludableSalesType:
      type: string
      description: >-
        Specifies the type of sales that are included when calculating the nexus
        threshold. This determines which sales are considered for nexus
        evaluation.
      enum:
        - ALL_SALES
        - TAXABLE_SALES
        - RETAIL_SALES
        - GROSS
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````