Newstore tenant-tax-configuration API

Tax configuration - Tenant

OpenAPI Specification

newstore-tenant-tax-configuration-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: '1.0'
  title: NewStore address tenant-tax-configuration API
  description: NewStore public APIs
  contact:
    email: support@newstore.com
    name: NewStore API Support
    url: https://developer.newstore.com
host: dodici-demo.p.newstore.net
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security: []
tags:
- name: tenant-tax-configuration
  description: Tax configuration - Tenant
paths:
  /taxes/config:
    get:
      description: Get tax calculation configuration of your business.
      summary: showTenantConfig
      tags:
      - tenant-tax-configuration
      operationId: GetshowTenantConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: version
        in: query
        required: false
        type: integer
        format: int32
        minimum: 0.0
        exclusiveMinimum: false
        description: Specific configuration version number to fetch. If left empty, the latest version of the configuration will be returned.
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Tax configuration of the tenant.
          schema:
            $ref: '#/definitions/TenantConfigDto'
          headers: {}
        '400':
          description: Bad request.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '401':
          description: Unauthorized.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '403':
          description: Forbidden.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '404':
          description: Tax configuration not found.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - newstore:configuration:read
    patch:
      description: Partially update the tax configuration of your business by merging the given fields with the existing fields.
      summary: updateTenantConfig
      tags:
      - tenant-tax-configuration
      operationId: updateTenantConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      consumes:
      - application/json
      parameters:
      - name: Content-Type
        in: header
        required: false
        enum:
        - application/json
        type: string
        description: ''
      - name: body
        in: body
        required: true
        description: ''
        schema:
          $ref: '#/definitions/TenantConfigUpdateDto'
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Tax configuration of the tenant.
          schema:
            $ref: '#/definitions/TenantConfigDto'
          headers: {}
        '401':
          description: Unauthorized.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '403':
          description: Forbidden.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '404':
          description: Tax configuration not found.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - newstore:configuration:write
    post:
      description: Create tax calculation configuration for your business.
      summary: createTenantConfig
      tags:
      - tenant-tax-configuration
      operationId: createTenantConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      consumes:
      - application/json
      parameters:
      - name: Content-Type
        in: header
        required: false
        enum:
        - application/json
        type: string
        description: ''
      - name: body
        in: body
        required: true
        description: ''
        schema:
          $ref: '#/definitions/TenantConfigCreateDto'
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '201':
          description: Tax configuration of the tenant.
          schema:
            $ref: '#/definitions/TenantConfigDto'
          headers: {}
        '400':
          description: Bad request.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '401':
          description: Unauthorized.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '403':
          description: Forbidden.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '409':
          description: Tax configuration was already created.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - newstore:configuration:write
definitions:
  CustomConfigCreateDto:
    title: CustomConfigCreateDto
    type: object
    properties:
      additional_config:
        type: object
        allOf:
        - $ref: '#/definitions/CustomConfigAdditionalCreateDto'
        - description: Other necessary configuration specific to the custom provider (currently configs for non-officially supported avalara based custom implementation)
      api_version:
        $ref: '#/definitions/CustomApiVersion'
      authentication:
        $ref: '#/definitions/CustomConfigAuthenticationDto'
      base_url:
        description: 'The base URL for the custom taxes RESTful API. The value should include the route prefix to the quotation API.

          * Required if the `api_version` is set to `v1`.

          * If the tax calculation strategy is set to `custom` and `api_version` is set to `v1`, the given configuration will be used.'
        example: https://my.custom.domain/base_path
        type: string
      exemption_classes:
        description: A list of supported exemption classes.
        type: array
        items:
          $ref: '#/definitions/ExemptionClassItemCreateDto'
    required:
    - api_version
  CustomV0AvalaraConfigUpdateDto:
    title: CustomV0AvalaraConfigUpdateDto
    type: object
    properties:
      account_number:
        description: AvaTax account number or account ID.
        example: '2000123456'
        type: string
        minLength: 1
        maxLength: 10
      company_code:
        description: 'Company code that identifies the company in the AvaTax account.

          * Value is case-sensitive.

          * Declared during the company setup in the AvaTax Admin Console.'
        example: NEWSTOREINC
        type: string
        minLength: 1
        maxLength: 25
      license_key:
        description: AvaTax license key.
        example: C1234567890ABCFE
        type: string
        minLength: 1
        maxLength: 16
        format: password
      url:
        description: Custom provider RESTful API URL that uses AvaTax v1 schema. Will be used for tax calculations.
        example: https://custom.provider.net/1.0/tax/get
        type: string
  CustomConfigAuthenticationMethod:
    title: CustomConfigAuthenticationMethod
    description: Custom provider authentication method.
    example: Basic
    type: string
    enum:
    - Basic
  VertexAuthLoginType:
    title: VertexAuthLoginType
    description: 'Vertex Login Type.

      * Used for selecting the authentication method.

      * `trusted_id` field is required if `login_type` is set to `trusted_id`.

      * `username` and `password` fields are required if `login_type` is set to `user_and_password`.'
    example: trusted_id
    type: string
    enum:
    - trusted_id
    - user_and_password
  CustomConfigAdditionalUpdateDto:
    title: CustomConfigAdditionalUpdateDto
    type: object
    properties:
      avalara:
        type: object
        allOf:
        - $ref: '#/definitions/CustomV0AvalaraConfigUpdateDto'
        - description: 'Avalara custom provider configuration.

            * Required if the `api_version` is set to `v0-avalara`.

            * If the tax calculation strategy is set to `custom` and `api_version` is set to `v0-avalara`, the given configuration will be used.'
          example:
            account_number: '2000123456'
            company_code: NEWSTOREINC
            license_key: C1234567890ABCFE
            url: https://custom.provider.net/1.0/tax/get
  VertexTargetField:
    title: VertexTargetField
    description: Vertex flexible field type.
    example: flexible_numeric_field
    type: string
    enum:
    - flexible_code_field
    - flexible_numeric_field
    - flexible_date_field
  AvalaraEnv:
    title: AvalaraEnv
    description: Avalara environment.
    example: sandbox
    type: string
    enum:
    - sandbox
    - production
  AvalaraConfigDto:
    title: AvalaraConfigDto
    type: object
    properties:
      account_number:
        description: AvaTax account number or account ID.
        example: '2000123456'
        type: string
        minLength: 1
        maxLength: 10
      company_code:
        description: 'Company code that identifies the company in the AvaTax account.

          * Value is case-sensitive.

          * Declared during the company setup in the AvaTax Admin Console.'
        example: NEWSTOREINC
        type: string
        minLength: 1
        maxLength: 25
      default_customer_code:
        description: Default customer code. Will be used in case when no ConsumerUUID is provided.
        example: Anonymous customer
        type: string
        minLength: 1
        maxLength: 50
      environment:
        $ref: '#/definitions/AvalaraEnv'
      exemption_classes:
        description: A list of mappings between `ExemptionClass` enum and Avalara custom entity use codes.
        type: array
        items:
          $ref: '#/definitions/AvalaraExemptionClassItemDto'
      license_key:
        description: AvaTax license key.
        example: C1234567890ABCFE
        type: string
        minLength: 1
        maxLength: 16
        format: password
    required:
    - account_number
    - company_code
    - environment
    - license_key
  VertexFlexibleFieldConfigDto:
    title: VertexFlexibleFieldConfigDto
    type: object
    properties:
      extended_attribute_name:
        description: The name of the extended attribute.
        example: shoeSize
        type: string
        minLength: 1
        maxLength: 255
      target_field_id:
        description: 'Vertex flexible field identifier.

          * If `target_field_type` is set to `flexible_code_field`, maximum length is 25.

          * If `target_field_type` is set to `flexible_numeric_field`, maximum length is 10.

          * If `target_field_type` is set to `flexible_date_field`, maximum length is 5.'
        example: 1
        type: integer
        minimum: 0.0
        maximum: 25.0
        format: int32
      target_field_type:
        $ref: '#/definitions/VertexTargetField'
    required:
    - extended_attribute_name
    - target_field_id
    - target_field_type
  TenantConfigCreateDto:
    title: TenantConfigCreateDto
    type: object
    properties:
      avalara:
        type: object
        allOf:
        - $ref: '#/definitions/AvalaraConfigCreateDto'
        - description: 'Avalara configuration.

            * Required if the `tax_calculation_strategy` is set to `avalara`.

            * If the tax calculation strategy is set to `avalara`, the given configuration will be used.

            * If the Avalara configuration is defined, the configuration will be validated through a ping request to Avalara, which will validate the authenticity of Avalara credentials.'
          example:
            account_number: '2000123456'
            company_code: NEWSTOREINC
            default_customer_code: Anonymous customer
            environment: sandbox
            license_key: C1234567890ABCFE
      custom:
        type: object
        allOf:
        - $ref: '#/definitions/CustomConfigCreateDto'
        - description: 'Custom provider configuration.

            * Required if the `tax_calculation_strategy` is set to `custom`.

            * If the tax calculation strategy is set to `custom`, the given configuration will be used.'
          example:
            api_version: v1
            base_url: https://my-custom-tax-url.com
      fixed_rate:
        type: object
        allOf:
        - $ref: '#/definitions/FixedRateConfigCreateDto'
        - description: 'Fixed rate configuration.

            * If the tax calculation strategy is set to `fixedrate`, the specified tax rate will be used.

            * For the other tax calculation strategies, the specified rate will be used as a fallback if the tax calculation fails (e.g. if the tax provider is not reachable).

            * The specified rate will be used as a fallback by the Associate App in offline-mode.'
          example:
            tax_name: Standard VAT rate for Austria
            tax_rate: 0.2
      fixed_rate_per_country:
        description: "Fixed rate configuration per country.\n* Uses ISO 3166 Alpha-2 format as the key in upper-case.\n* Fixed rate specification can be defined under each country key for the desired countries.\n* If the tax calculation strategy is set to `fixed_rate_per_country`:\n\n\n  * Fixed rate configuration must be configured.\n  * The specified tax rate will be used if the country code of the store has a fixed rate configuration.\n  * The tax calculation will fail if the country code of the store does not have a fixed rate configuration."
        example:
          AT:
            tax_name: Standard VAT rate for Austria
            tax_rate: 0.2
          DE:
            tax_name: Standard VAT rate for Germany
            tax_rate: 0.19
        type: object
        additionalProperties:
          $ref: '#/definitions/FixedRateConfigCreateDto'
      tax_calculation_strategy:
        $ref: '#/definitions/TaxCalculationStrategy'
      tax_committing_enabled:
        description: Enable tax committing to the selected tax calculation strategy. The tax committing feature is only supported for in-store orders.
        example: true
        type: boolean
      vertex:
        type: object
        allOf:
        - $ref: '#/definitions/VertexConfigCreateDto'
        - description: 'Vertex configuration.

            * Required if the `tax_calculation_strategy` is set to `vertex`.

            * If the tax calculation strategy is set to `vertex`, the given configuration will be used.

            * If the Vertex configuration is defined, the configuration will be validated through a ping request to Vertex, which will validate the authenticity of Vertex credentials.'
          example:
            administrative_origin:
              city: Berlin
              country: DE
              currency_code: EUR
              currency_value: 1.1
              main_division: Berlin
              postal_code: '10785'
              street_address_1: Potsdamer Str. 7
              street_address_2: Potsdamer Platz
            company_code: '1234'
            division_code: '1234'
            flexible_fields:
            - extended_attribute_name: productClass
              target_field_id: 1
              target_field_type: flexible_code_field
            - extended_attribute_name: shoeSize
              target_field_id: 1
              target_field_type: flexible_numeric_field
            login_type: trusted_id
            soap_url: https://sandboxap2.na1.ondemand.vertexinc.com/vertex-ws/services/CalculateTax90
            trusted_id: 9SDPdc9bo3
    required:
    - fixed_rate
    - tax_calculation_strategy
  VertexAdministrativeOriginUpdateDto:
    title: VertexAdministrativeOriginUpdateDto
    type: object
    properties:
      city:
        description: The proper name of the city used to determine the Tax Area ID.
        example: Berlin
        type: string
        minLength: 1
        maxLength: 60
      country:
        type: string
      currency_code:
        $ref: '#/definitions/Currency3'
      currency_value:
        description: The rate (multiplier) used for converting the transaction currency amount to the filing currency amount.
        example: 1.1
        type: number
        format: double
      main_division:
        description: The proper name or the postal abbreviation of the state, province, or territory used to determine the Tax Area ID.
        example: Berlin
        type: string
        minLength: 1
        maxLength: 60
      postal_code:
        description: The postal code used to determine the Tax Area ID
        example: '10785'
        type: string
        minLength: 1
        maxLength: 20
      street_address_1:
        description: The first line of the street address.
        example: Potsdamer Str. 7
        type: string
        minLength: 1
        maxLength: 100
      street_address_2:
        description: The second line of the street address.
        example: Potsdamer Platz
        type: string
        minLength: 1
        maxLength: 100
  TenantConfigUpdateDto:
    title: TenantConfigUpdateDto
    type: object
    properties:
      avalara:
        type: object
        allOf:
        - $ref: '#/definitions/AvalaraConfigUpdateDto'
        - description: 'Avalara configuration.

            * Required if the `tax_calculation_strategy` is set to `avalara`.

            * If the tax calculation strategy is set to `avalara`, the given configuration will be used.

            * If the Avalara configuration is defined, the configuration will be validated through a ping request to Avalara, which will validate the authenticity of Avalara credentials.'
          example:
            account_number: '2000123456'
            company_code: NEWSTOREINC
            default_customer_code: Anonymous customer
            environment: sandbox
            license_key: C1234567890ABCFE
      custom:
        type: object
        allOf:
        - $ref: '#/definitions/CustomConfigUpdateDto'
        - description: 'Custom provider configuration.

            * Required if the `tax_calculation_strategy` is set to `custom`.

            * If the tax calculation strategy is set to `custom`, the given configuration will be used.'
          example:
            api_version: v1
            base_url: https://my-custom-tax-url.com
      fixed_rate:
        type: object
        allOf:
        - $ref: '#/definitions/FixedRateConfigUpdateDto'
        - description: 'Fixed rate configuration.

            * If the tax calculation strategy is set to `fixedrate`, the specified tax rate will be used.

            * For the other tax calculation strategies, the specified rate will be used as a fallback if the tax calculation fails (e.g. if the tax provider is not reachable).

            * The specified rate will be used as a fallback by the Associate App in offline-mode.'
          example:
            tax_name: Standard VAT rate for Austria
            tax_rate: 0.2
      fixed_rate_per_country:
        description: "Fixed rate configuration per country.\n* Uses ISO 3166 Alpha-2 format as the key in upper-case.\n* Fixed rate specification can be defined under each country key for the desired countries.\n* If the tax calculation strategy is set to `fixed_rate_per_country`:\n\n\n  * Fixed rate configuration must be configured.\n  * The specified tax rate will be used if the country code of the store has a fixed rate configuration.\n  * The tax calculation will fail if the country code of the store does not have a fixed rate configuration."
        example:
          AT:
            tax_name: Standard VAT rate for Austria
            tax_rate: 0.2
          DE:
            tax_name: Standard VAT rate for Germany
            tax_rate: 0.19
        type: object
        additionalProperties:
          $ref: '#/definitions/FixedRateConfigCreateDto'
      tax_calculation_strategy:
        $ref: '#/definitions/TaxCalculationStrategy'
      tax_committing_enabled:
        description: Enable tax committing to the selected tax calculation strategy. The tax committing feature is only supported for in-store orders.
        example: true
        type: boolean
      vertex:
        type: object
        allOf:
        - $ref: '#/definitions/VertexConfigUpdateDto'
        - description: 'Vertex configuration.

            * Required if the `tax_calculation_strategy` is set to `vertex`.

            * If the tax calculation strategy is set to `vertex`, the given configuration will be used.

            * If the Vertex configuration is defined, the configuration will be validated through a ping request to Vertex, which will validate the authenticity of Vertex credentials.'
          example:
            administrative_origin:
              city: Berlin
              country: DE
              currency_code: EUR
              currency_value: 1.1
              main_division: Berlin
              postal_code: '10785'
              street_address_1: Potsdamer Str. 7
              street_address_2: Potsdamer Platz
            company_code: '1234'
            division_code: '1234'
            flexible_fields:
            - extended_attribute_name: productClass
              target_field_id: 1
              target_field_type: flexible_code_field
            - extended_attribute_name: shoeSize
              target_field_id: 1
              target_field_type: flexible_numeric_field
            login_type: trusted_id
            soap_url: https://sandboxap2.na1.ondemand.vertexinc.com/vertex-ws/services/CalculateTax90
            trusted_id: 9SDPdc9bo3
  TaxExemptionCountryCode:
    title: TaxExemptionCountryCode
    description: "The list of countries where this tax exemption class is relevant.\n    * '*' indicates worldwide support"
    example: '*'
    type: string
    enum:
    - '*'
    - AF
    - AX
    - AL
    - DZ
    - AS
    - AD
    - AO
    - AI
    - AQ
    - AG
    - AR
    - AM
    - AW
    - AU
    - AT
    - AZ
    - BS
    - BH
    - BD
    - BB
    - BY
    - BE
    - BZ
    - BJ
    - BM
    - BT
    - BO
    - BA
    - BW
    - BV
    - BR
    - IO
    - BN
    - BG
    - BF
    - BI
    - KH
    - CM
    - CA
    - CV
    - KY
    - CF
    - TD
    - CL
    - CN
    - CX
    - CC
    - CO
    - KM
    - CG
    - CD
    - CK
    - CR
    - CI
    - HR
    - CU
    - CY
    - CZ
    - DK
    - DJ
    - DM
    - DO
    - EC
    - EG
    - SV
    - GQ
    - ER
    - EE
    - ET
    - FK
    - FO
    - FJ
    - FI
    - FR
    - GF
    - PF
    - TF
    - GA
    - GM
    - GE
    - DE
    - GH
    - GI
    - GR
    - GL
    - GD
    - GP
    - GU
    - GT
    - GG
    - GN
    - GW
    - GY
    - HT
    - HM
    - VA
    - HN
    - HK
    - HU
    - IS
    - IN
    - ID
    - IR
    - IQ
    - IE
    - IM
    - IL
    - IT
    - JM
    - JP
    - JE
    - JO
    - KZ
    - KE
    - KI
    - KR
    - KW
    - KG
    - LA
    - LV
    - LB
    - LS
    - LR
    - LY
    - LI
    - LT
    - LU
    - MO
    - MK
    - MG
    - MW
    - MY
    - MV
    - ML
    - MT
    - MH
    - MQ
    - MR
    - MU
    - YT
    - MX
    - FM
    - MD
    - MC
    - MN
    - ME
    - MS
    - MA
    - MZ
    - MM
    - NA
    - NR
    - NP
    - NL
    - AN
    - NC
    - NZ
    - NI
    - NE
    - NG
    - NU
    - NF
    - MP
    - 'NO'
    - OM
    - PK
    - PW
    - PS
    - PA
    - PG
    - PY
    - PE
    - PH
    - PN
    - PL
    - PT
    - PR
    - QA
    - RE
    - RO
    - RU
    - RW
    - BL
    - SH
    - KN
    - LC
    - MF
    - PM
    - VC
    - WS
    - SM
    - ST
    - SA
    - SN
    - RS
    - SC
    - SL
    - SG
    - SK
    - SI
    - SB
    - SO
    - ZA
    - GS
    - ES
    - LK
    - SD
    - SR
    - SJ
    - SZ
    - SE
    - CH
    - SY
    - TW
    - TJ
    - TZ
    - TH
    - TL
    - TG
    - TK
    - TO
    - TT
    - TN
    - TR
    - TM
    - TC
    - TV
    - UG
    - UA
    - AE
    - GB
    - US
    - UM
    - UY
    - UZ
    - VU
    - VE
    - VN
    - VG
    - VI
    - WF
    - EH
    - YE
    - ZM
    - ZW
  ExemptionClassItemCreateDto:
    title: ExemptionClassItemCreateDto
    type: object
    properties:
      display_text:
        description: 'Display text to be used in Associate App while rendering the exemption class.

          * Required for custom tax exemption classes.

          * Optional for pre-defined tax exemption classes.

          * Keys must be a valid ISO 639-1 language code.

          * Must include English translation by default.'
        example:
          en: First Nation Citizen
          fr: Premières Nations
        type: object
        additionalProperties: {}
      exemption_class:
        $ref: '#/definitions/ExemptionClass'
      valid_countries:
        description: The list of countries where this tax exemption class is valid.
        type: array
        items:
          $ref: '#/definitions/TaxExemptionCountryCode'
    required:
    - exemption_class
    - valid_countries
  ExemptionClassItemDto:
    title: ExemptionClassItemDto
    type: object
    properties:
      display_text:
        description: 'Display text to be used in Associate App while rendering the exemption class.

          * Required for custom tax exemption classes.

          * Optional for pre-defined tax exemption classes.

          * Keys must be a valid ISO 639-1 language code.

          * Must include English translation by default.'
        example:
          en: First Nation Citizen
          fr: Premières Nations
        type: object
        additionalProperties: {}
      exemption_class:
        $ref: '#/definitions/ExemptionClass'
      valid_countries:
        description: The list of countries where this tax exemption class is valid.
        type: array
        items:
          $ref: '#/definitions/TaxExemptionCountryCode'
    required:
    - exemption_class
    - valid_countries
  ExemptionClassItemUpdateDto:
    title: ExemptionClassItemUpdateDto
    type: object
    properties:
      display_text:
        description: 'Display text to be used in Associate App while rendering the exemption class.

          * Required for custom tax exemption classes.

          * Optional for pre-defined tax exemption classes.

          * Keys must be a valid ISO 639-1 language code.

          * Must include English translation by default.'
        example:
          en: First Nation Citizen
          fr: Premières Nations
        type: object
        additionalProperties: {}
      exemption_class:
        $ref: '#/definitions/ExemptionClass'
      valid_countries:
        description: The list of countries where this tax exemption class is valid.
        type: array
        items:
          $ref: '#/definitions/TaxExemptionCountryCode'
    required:
    - exemption_class
    - valid_countries
  CustomConfigAdditionalCreateDto:
    title: CustomConfigAdditionalCreateDto
    type: object
    properties:
      avalara:
        type: object
        allOf:
        - $ref: '#/definitions/CustomV0AvalaraConfigCreateDto'
        - description: 'Avalara custom provider configuration.

            * Required if the `api_version` is set to `v0-avalara`.

            * If the tax calculation strategy is set to `custom` and `api_version` is set to `v0-avalara`, the given configuration will be used.'
          example:
            account_number: '2000123456'
            company_code: NEWSTOREINC
            license_key: C1234567890ABCFE
            url: https://custom.provider.net/1.0/tax/get
  VertexFlexibleFieldConfigCreateDto:
    title: VertexFlexibleFieldConfigCreateDto
    type: object
    properties:
      extended_attribute_name:
        description: The name of the extended attribute.
        example: shoeSize
        type: string
        minLength: 1
        maxLength: 255
      target_field_id:
        description: 'Vertex flexible field identifier.

          * If `target_field_type` is set to `flexible_code_field`, maximum length is 25.

          * If `target_field_type` is set to `flexible_numeric_field`, maximum length is 10.

          * If `target_field_type` is set to `flexible_date_field`, maximum length is 5.'
        example: 1
        type: integer
        minimum: 0.0
        maximum: 25.0
        format: int32
      target_field_type:
        $ref: '#/definitions/VertexTargetField'
    required:
    - extended_attribute_name
    - target_field_id
    - target_field_type
  TaxCalculationStrategy:
    title: TaxCalculationStrategy
    description: Tax calculation strategy.
    example: fixedrate
    type: string
    enum:
    - fixedrate
    - fixed_rate_per_country
    - avalara
    - vertex
    - custom
  AvalaraConfigUpdateDto:
    title: AvalaraConfigUpdateDto
    type: object
    properties:
      account_number:
        description: AvaTax account number or account ID.
        example: '2000123456'
        type: string
        minLength: 1
        maxLength: 10
      company_code:
        description: 'Company code that identifies the company in the AvaTax account.

          * Value is case-sensitive.

          * Declared during the company setup in the AvaTax Admin Console.'
        example: NEWSTOREINC
        type: string
        minLength: 1
        maxLength: 25
      default_customer_code:
        description: Default customer code. Will be used in case when no ConsumerUUID is provided.
        example: Anonymous customer
        type: string
        minLength: 1
        maxLength: 50
      environment:
        $ref: '#/definitions/AvalaraEnv'
      exemption_classes:
        description: A list of mappings between `ExemptionClass` enum and Avalara custom entity use codes.
        type: array
        items:
          $ref: '#/definitions/AvalaraExemptionClassItemUpdateDto'
      license_key:
        description: AvaTax license key.
        example: C1234567890ABCFE
        type: string
        minLength: 1
        maxLength: 16
        format: password
  FixedRateConfigDto:
    title: FixedRateConfigDto
    type: object
    properties:
      exemption_classes:
        description: A list of supported exemption classes.
        type: array
        items:
          $ref: '#/definitions/ExemptionClassItemDto'
      tax_name:
        description: Tax name to be used in the tax lines.
        example: Standard VAT rate
        type: string
      tax_rate:
        description: 'Tax rate to be used as a fixed rate during tax calculations.

          * Allows up to 5 decimal points.'
        example: 0.19
        type: number
        format: double
    required:
    - tax_rate
  AvalaraExemptionClassItemUpdateDto:
    title: AvalaraExemptionClassItemUpdateDto
    type: object
    properties:
      avalara_entity_use_code:
      

# --- truncated at 32 KB (77 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/newstore/refs/heads/main/openapi/newstore-tenant-tax-configuration-api-openapi.yml