Newstore tenant-config API

Tenant configuration

OpenAPI Specification

newstore-tenant-config-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: '1.0'
  title: NewStore address tenant-config 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-config
  description: Tenant configuration
paths:
  /config:
    get:
      description: Get fiscal configuration of the tenant.
      summary: showTenantConfig
      tags:
      - tenant-config
      operationId: showTenantConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: version
        in: query
        required: false
        type: number
        format: double
        description: 'Configuration version number.

          * If left empty, the latest version of the configuration will be returned.'
      - name: include_metadata
        in: query
        required: false
        default: false
        type: boolean
        description: Include metadata fields.
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Tenant configuration.
          schema:
            $ref: '#/definitions/TenantConfigV1Dto'
          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
  /config/offline-mode:
    get:
      description: Get list of countries supporting offline-mode for the tenant.
      summary: showTenantOfflineModeConfig
      tags:
      - tenant-config
      operationId: showTenantOfflineModeConfig
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters: []
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: List of countries supporting offline-mode.
          schema:
            $ref: '#/definitions/OfflineCountriesResponseV1Dto'
          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
    patch:
      description: 'Update list of countries supporting offline-mode for the tenant.

        * Only editable countries are allowed.

        * List of editable countries can be retireved through `GET /f11n/config`.'
      summary: updateTenantOfflineModeConfig
      tags:
      - tenant-config
      operationId: updateTenantOfflineModeConfig
      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/OfflineCountriesUpdateRequestV1Dto'
      responses:
        default:
          description: Unexpected error.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Offline config that was updated.
          schema:
            $ref: '#/definitions/OfflineCountriesResponseV1Dto'
          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:write
definitions:
  TransactionSignatureStrategy:
    title: TransactionSignatureStrategy
    description: "Offline transaction signature strategy that will be used while processing offline transactions.\n* `standard-signing`\n\n\n  * Offline orders will be fiscally signed according to regulations.\n  * Can be used in cases if the receipt would be emailed once the offline order is processed.\n* `late-signing`\n\n\n  * Offline orders will be signed with late signing flag.\n  * Can be used in cases if the receipt would be emailed once the offline order is processed.\n* `manual-receipts`\n\n\n  * Offline orders will be signed with manual flag.\n  * A receipt for the offline orders and do not need to be emailed later.\n  * Can be used in cases if the a manual receipt was issued by the store, and an electronic receipt should not be sent.\n* `no-signing`\n\n\n  * Offline orders will not be signed and should be considered completed without any signature needed.\n  * Can be used in cases if the fiscal signature was issued outside of the NewStore platform."
    example: no-signing
    type: string
    enum:
    - standard-signing
    - late-signing
    - manual-receipts
    - no-signing
  Problem:
    title: Problem
    type: object
    properties:
      detail:
        description: A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some description for the error situation
        type: string
      error_code:
        type: string
      instance:
        description: A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
        example: /some/uri-reference#specific-occurrence-context
        type: string
      message:
        type: string
      messages:
        type: array
        items:
          type: string
      request_id:
        type: string
      status:
        description: The HTTP status code generated by the origin server for this occurrence of the problem.
        type: integer
        minimum: 100.0
        maximum: 600.0
        exclusiveMaximum: true
        format: int32
      title:
        description: A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some title for the error situation
        type: string
      type:
        description: A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.
        example: /some/uri-reference
        type: string
        default: about:blank
  FiscalEnvironment:
    title: FiscalEnvironment
    description: Fiscal environment of the tenant.
    example: non-production
    type: string
    enum:
    - non-production
    - production
  TenantConfigV1Dto:
    title: TenantConfigV1Dto
    type: object
    properties:
      created_at:
        description: Creation date of the configuration.
        example: '2024-05-13T07:52:32.285Z'
        type: string
        format: date-time
      environment:
        $ref: '#/definitions/FiscalEnvironment'
      offline_countries:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountriesConfigMetadataV1Dto'
        - description: Offline mode configuration per country.
      updated_at:
        description: Latest update date of the configuration.
        example: '2024-05-13T07:52:32.285Z'
        type: string
        format: date-time
      updated_by:
        description: User identifier who updated the current version of the configuration.
        example: '2136871599'
        type: string
      version:
        description: 'Version number of the configuration.

          * Version number `0` represents the system defaults.'
        example: 1
        type: integer
        format: int32
    required:
    - environment
    - offline_countries
    - version
  OfflineCountriesResponseV1Dto:
    title: OfflineCountriesResponseV1Dto
    type: object
    properties:
      offline_countries:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountriesConfigV1Dto'
        - description: Per country offline mode configuration.
    required:
    - offline_countries
  OfflineCountriesConfigMetadataV1Dto:
    title: OfflineCountriesConfigMetadataV1Dto
    type: object
    properties:
      AT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Austria.
      DE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Germany.
      ES:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Spain.
      FR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for France.
      IE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Ireland.
      IN:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for India.
      IT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Italy.
      MC:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Monaco.
      'NO':
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Norway.
      PL:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Poland.
      PR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Puerto Rico.
      SE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Sweden.
      TH:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigMetadataV1Dto'
        - description: Per country offline mode configuration for Thailand.
    required:
    - AT
    - DE
    - ES
    - FR
    - IE
    - IN
    - IT
    - MC
    - 'NO'
    - PL
    - PR
    - SE
    - TH
  OfflineCountryConfigV1Dto:
    title: OfflineCountryConfigV1Dto
    type: object
    properties:
      enabled:
        description: Defines whether offline mode is enabled for this country.
        type: boolean
      strategy:
        $ref: '#/definitions/TransactionSignatureStrategy'
    required:
    - enabled
    - strategy
  OfflineCountriesConfigV1Dto:
    title: OfflineCountriesConfigV1Dto
    type: object
    properties:
      AT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Austria.
      DE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Germany.
      ES:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Spain.
      FR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for France.
      IE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Ireland.
      IN:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for India.
      IT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Italy.
      MC:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Monaco.
      'NO':
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Norway.
      PL:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Poland.
      PR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Puerto Rico.
      SE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Sweden.
      TH:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Thailand.
    required:
    - AT
    - DE
    - ES
    - FR
    - IE
    - IN
    - IT
    - MC
    - 'NO'
    - PL
    - PR
    - SE
    - TH
  OfflineCountriesUpdateRequestV1Dto:
    title: OfflineCountriesUpdateRequestV1Dto
    type: object
    properties:
      offline_countries:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountriesConfigUpdateV1Dto'
        - description: Per country offline mode configuration.
    required:
    - offline_countries
  OfflineCountryConfigMetadataV1Dto:
    title: OfflineCountryConfigMetadataV1Dto
    type: object
    properties:
      allowed_strategies:
        description: 'List of allowed strategies for the current country.

          * Metadata field.'
        type: array
        items:
          $ref: '#/definitions/TransactionSignatureStrategy'
        maxItems: 4
      editable:
        description: 'Defines whether offline mode can be enabled for this country.

          * Metadata field.'
        type: boolean
      enabled:
        description: Defines whether offline mode is enabled for this country.
        type: boolean
      strategy:
        $ref: '#/definitions/TransactionSignatureStrategy'
    required:
    - enabled
    - strategy
  OfflineCountriesConfigUpdateV1Dto:
    title: OfflineCountriesConfigUpdateV1Dto
    type: object
    properties:
      AT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Austria.
      DE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Germany.
      ES:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Spain.
      FR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for France.
      IE:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Ireland.
      IN:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for India
      IT:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Italy.
      MC:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Monaco.
      PL:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Poland.
      PR:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Puerto Rico.
      TH:
        type: object
        allOf:
        - $ref: '#/definitions/OfflineCountryConfigV1Dto'
        - description: Per country offline mode configuration for Thailand.
securityDefinitions:
  oauth:
    type: oauth2
    flow: application
    tokenUrl: https://id.p.newstore.net/auth/realms/dodici-demo/protocol/openid-connect/token
    scopes:
      catalog:import-schemas:read: Grants privileges to read import schema
      catalog:import-schemas:write: Grants privileges to write import schema
      catalog:pricebook-export:read: Grants privileges to export pricebook data
      catalog:product-export:read: Grants privileges to export product data
      checkout:carts:read: Grants privileges to read cart data
      checkout:carts:write: Grants privileges to write cart data
      clienteling:profile:read: Grants privileges to read clienteling profiles
      customer:profile:read: Grants privileges to read API customer data
      customer:profile:write: Grants privileges to modify API customer data
      newstore:configuration:read: Grants privileges to read configuration
      newstore:configuration:write: Grants privileges to write configuration
      fiscalization:orders:read: View orders with fiscal transactions and signatures
      fiscalization:orders:write: Create orders with fiscal transactions and signatures
      shipments:read: Read Shipping Options and Audits
      iam:providers:read: ' Grants read privileges to provider resources'
      iam:providers:write: ' Grants write privileges to provider resources'
      iam:roles:read: ' Grants privileges to read roles data'
      iam:roles:write: ' Grants privileges to write roles data'
      iam:users:read: ' Grants privileges to read user data'
      iam:users:write: ' Grants privileges to write user data'
      inventory:reservations:read: Allows access to retrieve reservations
      inventory:reservations:write: Allows access to create and update reservations
      promotions:config:read: Grants privileges to read configuration
      promotions:config:write: Grants privileges to write into configuration
      promotions:reason-codes:read: Grants privileges to list reason codes
      promotions:reason-codes:write: Grants privileges to create and update reason codes
      audit-events:read: Grants read access to the tenant's audit events.
      taxes:preview-transactions:write: Preview tax transactions
      taxes:transactions:read: Read tax transactions