swagger: '2.0'
info:
  title: Products API
  contact:
    name: API Integration Support
    email: integration@dintero.com
  description: |
    # Changelog
    All notable changes to the API.

    ## 2020-05-01

    > Initial version
    > - [POST /products](/#tag/products)
  version: LATEST
  license:
    name: UNLICENSED
    url: https://dintero.com
  x-logo:
    url: https://docs.dintero.com/img/dintero-dark-padded.svg
basePath: /v1
consumes:
  - application/json
produces:
  - application/json
security:
  - JWT: []
paths:
  /accounts/{aid}/products/catalogs:
    get:
      operationId: aid_catalogs_get
      summary: Catalogs collection
      description: |
        Get catalogs from account based on query parameters

        scopes:
          - admin:products
          - write:products
          - read:products
      x-scopes:
        - admin:products
        - write:products
        - read:products
      tags:
        - catalogs
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/startingAfter'
      responses:
        '200':
          description: Catalog collection
          schema:
            type: object
            properties:
              catalogs:
                type: array
                items:
                  allOf:
                    - $ref: '#/definitions/Catalog'
                    - $ref: '#/definitions/Entity'
              starting_after:
                type: string
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    post:
      operationId: aid_catalogs_post
      summary: Create new catalog
      description: |
        Create a new product catalog

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - catalogs
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - name: data
          description: catalogs
          in: body
          required: true
          schema:
            allOf:
              - properties:
                  catalog_id:
                    type: string
                    maxLength: 255
                    description: |
                      The id you have defined for the catalog.
                      (must not have trailing or leading spaces). An
                      auto-generated catalog_id will be created if no catalog_id
                      is provided
                    example: SK33
                    readOnly: false
              - $ref: '#/definitions/Catalog'
      responses:
        '200':
          description: Catalog created
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Catalog'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/catalogs/{catalog_id}:
    put:
      operationId: aid_catalogs_put
      summary: Update catalog
      description: |
        Update an existing catalog

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - catalogs
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
        - name: data
          description: catalog
          in: body
          required: true
          schema:
            $ref: '#/definitions/Catalog'
      responses:
        '200':
          description: Catalog updated
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Catalog'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '500':
          $ref: '#/responses/ServerError'
    delete:
      operationId: aid_catalogs_delete
      summary: Delete catalog
      description: |
        Delete catalog and all corresponding products

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
      tags:
        - catalogs
      security:
        - JWT: []
      responses:
        '200':
          description: Catalog deleted
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Catalog'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/catalogs/{catalog_id}/products:
    get:
      operationId: aid_products_get
      summary: Products collection
      description: |
        Get products in a catalog based on query parameters

        scopes:
          - admin:products
          - write:products
          - read:products
      x-scopes:
        - admin:products
        - write:products
        - read:products
      tags:
        - products
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
        - $ref: '#/parameters/productId'
        - $ref: '#/parameters/product_name'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/startingAfter'
      responses:
        '200':
          description: Product collection
          schema:
            type: object
            properties:
              products:
                type: array
                items:
                  allOf:
                    - $ref: '#/definitions/ProductResponse'
                    - properties:
                        groups:
                          type: array
                          items:
                            $ref: '#/definitions/Group'
              starting_after:
                type: string
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    post:
      operationId: aid_products_post
      summary: Create new product
      description: |
        Create a new product

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - products
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
        - name: data
          description: product to create
          in: body
          required: true
          schema:
            $ref: '#/definitions/ProductPost'
      responses:
        '200':
          description: Product created
          schema:
            allOf:
              - $ref: '#/definitions/ProductResponse'
              - properties:
                  groups:
                    type: array
                    items:
                      $ref: '#/definitions/Group'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/catalogs/{catalog_id}/products/{product_id}:
    put:
      operationId: aid_products_put
      summary: Update product
      description: |
        Update an existing product

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - products
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
        - $ref: '#/parameters/product_id'
        - name: data
          description: products
          in: body
          required: true
          schema:
            $ref: '#/definitions/Product'
      responses:
        '200':
          description: Product updated
          schema:
            $ref: '#/definitions/ProductResponse'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '500':
          $ref: '#/responses/ServerError'
    delete:
      operationId: aid_catalog_id_product_delete
      summary: Delete product
      description: |
        Delete product in a given catalog

        scopes:
          - admin:products
          - write:products
      x-scopes:
        - admin:products
        - write:products
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/catalogId'
        - $ref: '#/parameters/product_id'
      tags:
        - products
      responses:
        '200':
          description: Product deleted
          schema:
            $ref: '#/definitions/ProductResponse'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/groups:
    get:
      operationId: aid_group_get
      summary: Group collection
      description: |
        Lists all groups
      x-scopes:
        - admin:products
        - write:products
      tags:
        - groups
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/startingAfter'
        - $ref: '#/parameters/group_id_query'
      responses:
        '200':
          description: Group collection
          schema:
            type: object
            properties:
              groups:
                type: array
                items:
                  allOf:
                    - $ref: '#/definitions/Entity'
                    - $ref: '#/definitions/Group'
              starting_after:
                type: string
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    post:
      operationId: aid_group_post
      summary: Create new group
      description: |
        Insert a new group
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - groups
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - name: data
          description: group
          in: body
          required: true
          schema:
            allOf:
              - properties:
                  group_id:
                    type: string
                    maxLength: 255
                    description: |
                      The id you have defined for the group (must not have training or leading spaces). An auto-generated group_id will be created if not provided
                    example: b1
                    readOnly: false
              - $ref: '#/definitions/Group'
      responses:
        '200':
          description: Group created
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Group'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/groups/{group_id}:
    put:
      operationId: aid_group_put
      summary: Update group
      description: |
        Update an existing group
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - groups
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/groupId'
        - name: data
          description: group
          in: body
          required: true
          schema:
            $ref: '#/definitions/Group'
      responses:
        '200':
          description: Group updated
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Group'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    delete:
      operationId: aid_delete
      summary: Delete group
      description: |
        Delete an existing group
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/groupId'
      tags:
        - groups
      security:
        - JWT: []
      responses:
        '200':
          description: Group deleted
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/Group'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/tax:
    get:
      operationId: aid_tax_get
      summary: Taxgroup collection
      description: |
        Lists all taxgroups
      x-scopes:
        - admin:products
        - write:products
      tags:
        - tax
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/startingAfter'
      responses:
        '200':
          description: Taxgroup collection
          schema:
            type: object
            properties:
              tax_groups:
                type: array
                items:
                  allOf:
                    - $ref: '#/definitions/Entity'
                    - $ref: '#/definitions/TaxGroup'
              starting_after:
                type: string
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    post:
      operationId: aid_tax_post
      summary: Create new taxgroup
      description: |
        Insert a new taxgroup
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - tax
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - name: data
          description: tax_group
          in: body
          required: true
          schema:
            allOf:
              - properties:
                  tax_id:
                    type: string
                    maxLength: 255
                    description: |
                      The id you have defined for the taxgroup (must not have training or leading spaces). An auto-generated tax_id will be created if not provided
                    example: vmva1
                    readOnly: false
              - $ref: '#/definitions/TaxGroup'
      responses:
        '200':
          description: Taxgroup created
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/TaxGroup'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
  /accounts/{aid}/products/tax/{tax_id}:
    put:
      operationId: aid_tax_put
      summary: Update taxgroup
      description: |
        Update an existing taxgroup
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      tags:
        - tax
      security:
        - JWT: []
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/taxId'
        - name: data
          description: tax_group
          in: body
          required: true
          schema:
            $ref: '#/definitions/TaxGroup'
      responses:
        '200':
          description: Taxgroup updated
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/TaxGroup'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
    delete:
      operationId: aid_tax_delete
      summary: Delete taxgroup
      description: |
        Delete an existing taxgroup
      x-scopes:
        - admin:products
        - write:products
      consumes:
        - application/json
      parameters:
        - $ref: '#/parameters/accountId'
        - $ref: '#/parameters/taxId'
      tags:
        - tax
      security:
        - JWT: []
      responses:
        '200':
          description: Taxgroup deleted
          schema:
            allOf:
              - $ref: '#/definitions/Entity'
              - $ref: '#/definitions/TaxGroup'
        '400':
          $ref: '#/responses/BadRequest'
        '401':
          $ref: '#/responses/AccessForbidden'
        '403':
          $ref: '#/responses/Forbidden'
        '500':
          $ref: '#/responses/ServerError'
definitions:
  BatchResponse:
    allOf:
      - type: object
        properties:
          catalog:
            type: array
            items:
              allOf:
                - $ref: '#/definitions/Entity'
                - $ref: '#/definitions/Catalog'
          products:
            type: array
            items:
              allOf:
                - $ref: '#/definitions/Product'
  Catalog:
    type: object
    properties:
      catalog_id:
        type: string
        example: S23
        description: The id to define which catalog the product is a part of. An auto-generated ID will be created if not provided
        readOnly: true
      catalog_name:
        type: string
        example: Sommer
        description: |
          The catalog's name that will be shown customers
  Entity:
    type: object
    properties:
      id:
        type: string
        format: uuid
        description: |
          An UUID that uniquely identifies the resource
        readOnly: true
      created_at:
        type: string
        format: date-time
        description: |
          The date-time when the resource was created
        readOnly: true
      created_by:
        type: string
        example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
        description: |
          The ID of the user/client created the resource
        readOnly: true
      updated_at:
        type: string
        format: date-time
        description: |
          The date-time when the resource was last updated
        readOnly: true
      deleted_by:
        type: string
        example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
        description: |
          The ID of the user/client created the resource
        readOnly: true
      deleted_at:
        type: string
        format: date-time
        readOnly: true
  Error:
    type: object
    required:
      - error
    properties:
      error:
        type: object
        required:
          - message
        properties:
          code:
            type: string
            description: The code used to identify the error/warning
          errors:
            type: array
            description: The nested error(s) encountered during validation
            items:
              type: object
          message:
            type: string
            description: The human readable description of the error/warning
  Dimension:
    type: object
    description: |
      Identify item attributes, such as size and color
    properties:
      color:
        type: string
      size:
        type: string
      style:
        type: string
      config:
        type: string
      variant:
        type: string
  Images:
    description: Links to images of product
    type: array
    example:
      - href: https://example.dintero.com/c/photos/2018/6_20_thumbnail_image.png
        rel: thumbnail_image
        caption: Image of current discount
      - href: https://example.dintero.com/c/photos/2018/6_20_medium_image.png
        rel: medium_image
    items:
      type: object
      maxItems: 10
      required:
        - href
      properties:
        href:
          description: The URL of the link.
          type: string
          format: uri
        title:
          description: Describes the image
          type: string
        rel:
          description: |
            Specifies the relationship between the image and the link

            Following `rel` values are reserved for specific usage

              - thumbnail_image: link to image
              - medium_image: link to image
              - large_image: link to image
              - webshop: link to site where the image may be used
          type: string
        type:
          type: string
          description: Specifies the media type of the link
  Location:
    type: object
    properties:
      location_id:
        type: string
        description: |
          The id you have defined for the sales location. 
          (must not have trailing or leading spaces). 
          An auto-generated location_id will be created if no location_id is provided
        maxLength: 255
      location_name:
        type: string
        description: |
          The name that will be shown to customers
      is_available_for_shipping:
        description: |
          If true, the product is available for shipping
        type: boolean
        default: true
      is_available_for_pickup:
        description: |
          If true, the product can be picked up at this location
        type: boolean
        default: false
      number_of_items_in_storage:
        description: |
          Number of items currently in storage at this location
        type: integer
  Product:
    type: object
    allOf:
      - properties:
          product_name:
            type: string
            example: Stablestol
            description: |
              The products name which is shown to customers
          description:
            type: string
            example: Stablestol for utendørsbruk
          is_virtual_product:
            type: boolean
            default: false
          unit_gross_price:
            type: integer
            example: 10900
          unit:
            type: string
            example: stk
            description: Unit type
          currency:
            type: string
            example: NOK
            description: |
              The three-character ISO-4217 currency. https://en.wikipedia.org/wiki/ISO_4217
          starting_at:
            type: string
            format: date-time
            description: |
              The product will not be visible until this time
          stopping_at:
            type: string
            format: date-time
            description: |
              The product will not be visible after this time
          dimension:
            $ref: '#/definitions/Dimension'
          images:
            $ref: '#/definitions/Images'
          locations:
            description: |
              All locations connected to the product
            type: array
            example:
              - location_id: SC_Oslo
                location_name: SuperChain Oslo
                is_available_for_shipping: false
                is_available_for_pickup: true
                number_of_items_in_storage: 15
              - location_id: SC_web
                location_name: SuperChain Webshop
                is_available_for_shipping: true
                is_available_for_pickup: false
                number_of_items_in_storage: 500
            items:
              $ref: '#/definitions/Location'
  ProductResponse:
    allOf:
      - $ref: '#/definitions/Entity'
      - $ref: '#/definitions/Product'
      - properties:
          product_id:
            description: |
              The id to define the product. An auto-generated product_id will be created if no product_id is provided
            type: string
            example: Stol22
            readOnly: true
          catalog_id:
            type: string
            example: S23
            description: The id to define which catalog the product is a part of. An auto-generated ID will be created if not provided
          catalog_name:
            type: string
            example: Sommer
            readOnly: true
            description: |
              Name of corresponding catalog
  Group:
    type: object
    properties:
      group_id:
        type: string
        description: group id
        example: B1
        readOnly: true
      group_name:
        type: string
        description: Name of the group
        example: Møbel
  ProductPost:
    allOf:
      - $ref: '#/definitions/Product'
      - properties:
          product_id:
            description: |
              The id to define the product. An auto-generated product_id will be created if no product_id is provided
            type: string
            example: Stol22
            readOnly: false
          groups:
            type: array
            description: |
              Array containing relevant product groups and sub-groups to be upserted. New groups will be inserted, existing groups will be updated and deleted groups will be revived.
            example:
              - id: B234
                name: Stol
              - id: B1
                name: Møbel
            items:
              allOf:
                - properties:
                    group_id:
                      type: string
                      maxLength: 255
                      description: |
                        The id you have defined for the group (must not have training or leading spaces). An auto-generated group_id will be created if not provided
                      example: b1
                      readOnly: false
                - $ref: '#/definitions/Group'
  TaxGroup:
    type: object
    properties:
      tax_id:
        type: string
        description: |
          The id you have defined for the taxgroup (must not have training or leading spaces). An auto-generated tax_id will be created if not provided
        example: vmva1
        readOnly: true
      tax_group:
        type: string
        description: |
          The taxgroup name which is usually shown
        example: Vmva-høy
      description:
        type: string
        example: Taxgroup for food. Currently 12%
      amount:
        type: number
        example: 10000
      percentage:
        type: number
        example: 12
      tax_code:
        type: string
        example: 3
parameters:
  accountId:
    name: aid
    description: |
      An id that uniquely identifies the account.
    in: path
    required: true
    type: string
    format: ^[PT]{1}\d{8}$
    minLength: 9
    maxLength: 9
  limit:
    name: limit
    in: query
    description: |
      A limit on the number of objects to be returned. Limit can range
      between 1 and 100 items, and the default is 10 items.
    type: integer
    minimum: 1
    maximum: 100
    default: 10
  startingAfter:
    name: starting_after
    in: query
    description: |
      cursor for use in pagination. starting_after is an object ID
      that defines your place in the list. For instance, if you make
      a list request and receive 100 objects, end the result contains
        `paging_token=pt1`, your subsequent call can include
      `starting_after=pt1` in order to fetch the next page of the list.
    type: string
    required: false
  catalogId:
    name: catalog_id
    description: |
      An id that uniquely identifies the catalog. (must not have trailing or leading spaces)
    in: path
    required: true
    type: string
    maxLength: 255
  productId:
    name: product_id
    description: |
      A string that uniquely identifies the product. (must not have trailing or leading spaces)
    in: query
    required: false
    type: string
  product_name:
    name: product_name
    description: |
      Lookup on product name
    in: query
    required: false
    type: string
  product_id:
    name: product_id
    type: string
    description: |
      A string that uniquely identifies the product. (must not have trailing or leading spaces)
    in: path
    required: true
    maxLength: 255
  group_id_query:
    name: group_id
    type: string
    description: |
      A string that uniquely identifies the group. (must not have trailing or leading spaces)
    in: query
    maxLength: 255
  groupId:
    name: group_id
    type: string
    description: |
      A string that uniquely identifies the group. (must not have trailing or leading spaces)
    in: path
    required: true
    maxLength: 255
  taxId:
    name: tax_id
    type: string
    description: |
      A string that uniquely identifies the tax. (must not have trailing or leading spaces)
    in: path
    required: true
    maxLength: 255
responses:
  BadRequest:
    description: Bad / Invalid request
    schema:
      $ref: '#/definitions/Error'
  AccessForbidden:
    description: Access forbidden, invalid JWT token was used
    schema:
      $ref: '#/definitions/Error'
  Forbidden:
    description: Forbidden
    schema:
      $ref: '#/definitions/Error'
  ServerError:
    description: Unexpected Error
    schema:
      $ref: '#/definitions/Error'
  NotFound:
    description: Resource was not found
    schema:
      $ref: '#/definitions/Error'
securityDefinitions:
  JWT:
    type: apiKey
    name: Authorization
    description: |
      Bearer authentication (also called token authentication) should be
      used when accessing the API.

      Use [Get Token](https://docs.dintero.com/api.html#operation/aid_auths_oauth_token_post)
      to get an access token for client credentials

      Authorization by using the **Bearer** schema
      The content of the header should look like the following:

          Authorization: Bearer {access_token}

      where the **access_token** is JSON Web Tokens (JWT).
    in: header
    x-example: Bearer <access_token>
x-servers:
  - url: https://api.dintero.com/v1/
x-tagGroups:
  - name: Product
    tags:
      - catalogs
      - products
      - groups
      - tax
