Newstore store-tax-configuration API

Tax configuration - Store

OpenAPI Specification

newstore-store-tax-configuration-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: '1.0'
  title: NewStore address store-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: store-tax-configuration
  description: Tax configuration - Store
paths:
  /taxes/config/stores:
    get:
      description: List store tax calculation configurations with the given query.
      summary: listStoreConfigs
      tags:
      - store-tax-configuration
      operationId: listStoreConfigs
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: limit
        in: query
        required: true
        type: integer
        format: int32
        minimum: 1.0
        maximum: 100.0
        exclusiveMaximum: false
        exclusiveMinimum: false
        description: Limit number of results to this value.
      - name: tax_calculation_strategy
        in: query
        required: false
        enum:
        - fixedrate
        - fixed_rate_per_country
        - avalara
        - vertex
        - custom
        type: string
        description: Tax calculation strategy to filter by.
      - name: next_page_key
        in: query
        required: false
        type: string
        description: Key to be used to get the next page of results.
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: List of tax configurations of stores.
          schema:
            $ref: '#/definitions/StoreConfigListDto'
          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: {}
        '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
    post:
      description: Create a tax calculation configuration for the specified store identifier.
      summary: createStoreConfig
      tags:
      - store-tax-configuration
      operationId: createStoreConfig
      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/StoreConfigCreateDto'
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '201':
          description: Tax configuration of the store.
          schema:
            $ref: '#/definitions/StoreConfigDto'
          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 for the given store 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
  /taxes/config/stores/{id}:
    delete:
      description: Delete tax configuration for the given store identifier.
      summary: destroyStoreConfig
      tags:
      - store-tax-configuration
      operationId: destroyStoreConfig
      deprecated: false
      produces:
      - application/problem+json
      parameters:
      - name: id
        in: path
        required: true
        type: string
        description: Store identifier.
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '204':
          description: Tax configuration deleted for the given store identifier.
          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
    get:
      description: Get tax configuration for the given store identifier.
      summary: showStoreConfig
      tags:
      - store-tax-configuration
      operationId: showStoreConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: id
        in: path
        required: true
        type: string
        description: Store identifier.
      - 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.
      - name: merged_tenant_fallback
        in: query
        required: false
        default: true
        type: boolean
        description: Flag that indicates if the store configuration should be merged with the tenant configuration to provide tenant level fallbacks to the store. This flag defaults to true if it is not sent.
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: 'Tax configuration of the store.

            * If the `merged_tenant_fallback` is set to `false`, the response will contain a store configuration `StoreConfigDto`.

            * If the `merged_tenant_fallback` is set to `true` or not sent, the response will contain a merged store configuration and tenant configuration `ConfigDto`.'
          schema: {}
          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 a store by merging the given fields with the existing fields.
      summary: updateStoreConfig
      tags:
      - store-tax-configuration
      operationId: updateStoreConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      consumes:
      - application/json
      parameters:
      - name: id
        in: path
        required: true
        type: string
        description: Store identifier.
      - name: Content-Type
        in: header
        required: false
        enum:
        - application/json
        type: string
        description: ''
      - name: body
        in: body
        required: true
        description: ''
        schema:
          $ref: '#/definitions/StoreConfigUpdateDto'
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Tax configuration of the store.
          schema:
            $ref: '#/definitions/StoreConfigDto'
          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
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
  StoreConfigUpdateDto:
    title: StoreConfigUpdateDto
    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
      country_code:
        type: string
      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'
      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
  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
  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
  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
  StoreConfigDto:
    title: StoreConfigDto
    type: object
    properties:
      avalara:
        type: object
        allOf:
        - $ref: '#/definitions/AvalaraConfigDto'
        - 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
      country_code:
        type: string
      created_at:
        description: Creation date of the configuration.
        example: '2023-02-28T16:58:46.961Z'
        type: string
        format: date-time
      custom:
        type: object
        allOf:
        - $ref: '#/definitions/CustomConfigDto'
        - 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/FixedRateConfigDto'
        - 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 strate

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