swagger: '2.0'
info:
  title: Shirtigo Cockpit API
  description: |-
    API for the Shirtigo Cockpit application.
               The API supports API-Key as well as OAuth2 authentication.
               The API-key / access token has to be presented in the `Authentication` header such as `Authentication: Bearer [key]`.
               Additionally, it is recommended to set the `Accept: application/json` header.
               API Clients for several languages are available on github: https://github.com/shirtigo
  version: 1.0.0
  x-logo:
    url: /images/cockpit_logo_color.svg
    backgroundColor: '#fafafa'
host: cockpit.shirtigo.com
basePath: /api
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
tags:
  - name: oauth
    description: This section contains endpoints related to the OAuth2 implementation.
    x-displayName: Authorization
  - name: Catalog-API
    description: >-
      Endpoints in this section retrieve baseProducts available for creating
      customized products.
    x-displayName: Catalog-API
  - name: Order-API
    description: Endpoints in this section retrieve information about issued orders.
    x-displayName: Order-API
  - name: Design-API
    description: >-
      Endpoints in this section manipulate (create, view, modify) designs by the
      currently logged in user.
    x-displayName: Design-API
  - name: Project-API
    description: >-
      Endpoints in this section manipulate (create, view, modify) projects of
      the currently logged in user.
    x-displayName: Project-API
  - name: Product-API
    description: >-
      Endpoints in this section retrieve customized products available to the
      currently logged in user.
    x-displayName: Product-API
  - name: Product-API
    description: >-
      Endpoints in this section retrieve customized products available to the
      currently logged in user.
    x-displayName: Product-API
  - name: Warehousing-API
    description: >-
      Endpoints in this section manipulate (create, view, modify) objects
      related to warehousing.
    x-displayName: Warehousing-API
  - name: User-API
    description: >-
      Endpoints in this section manipulate (create, view, modify) the user
      object.
    x-displayName: User-API
  - name: Image-API
    description: Endpoints in this section are used for mockup and design generation.
    x-displayName: Image-API
  - name: Webhook-API
    description: >-
      Endpoints in this section manipulate (create, view, modify) webhooks of
      the currently logged in user.
    x-displayName: Webhook-API
  - name: Integration-API
    description: >-
      Endpoints in this section control data about integrations to 3rd party
      applications for fullfilments.
                                  Integrations may only be updated or deleted via API while the initial installation of integrations is performed in the user dashboard
    x-displayName: Integration-API
  - name: other
    description: This section contains miscellaneous endpoints.
    x-displayName: Others
paths:
  /transactions:
    get:
      tags:
        - User-API
      summary: Get all transactions
      description: >-
        Retrieve all accounting transactions issued by the currently
        authenticated user.

        The result will be paginated, meta information is included in the
        response.
      parameters:
        - name: page
          in: query
          description: Page number
          type: integer
          default: 1
        - name: items
          in: query
          description: Items per page
          type: integer
          default: 12
        - name: search
          in: query
          description: Search query
          type: integer
        - name: sort_col
          in: query
          description: Property to order by
          type: string
          default: ''
        - name: sort_dir
          in: query
          description: Order direction
          type: string
          default: asc
          enum:
            - asc
            - desc
        - name: period
          in: query
          description: 'Days to show (default: all)'
          type: integer
        - name: action
          in: query
          description: 'Action to filter for (default: none)'
          type: integer
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/Payment'
              meta:
                description: Meta information
                properties:
                  pagination:
                    description: >-
                      Get all transactions


                      Retrieve all accounting transactions issued by the
                      currently authenticated user.

                      The result will be paginated, meta information is included
                      in the response.
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
  /wallet/transactions:
    get:
      tags:
        - User-API
      summary: Get wallet transactions
      operationId: getWalletTransactions
      parameters:
        - name: items
          in: query
          description: Number of items per page
          type: integer
        - name: search
          in: query
          description: Search term
          type: string
        - name: sort_col
          in: query
          type: string
        - name: sort_dir
          in: query
          type: string
          enum:
            - asc
            - desc
      responses:
        '200':
          description: Successful operation
          schema:
            properties:
              data:
                description: Get wallet transactions
                type: array
                items:
                  properties:
                    id:
                      description: Get wallet transactions
                      type: integer
                    reference:
                      description: Get wallet transactions
                      type: string
                    amount:
                      description: Get wallet transactions
                      properties:
                        value:
                          description: Get wallet transactions
                          type: number
                          format: float
                        currency:
                          description: Get wallet transactions
                          type: string
                      type: object
                    created_at:
                      description: Get wallet transactions
                      type: string
                      format: date-time
                    description:
                      description: Get wallet transactions
                      type: string
                    type:
                      description: Get wallet transactions
                      type: string
                  type: object
              meta:
                description: Get wallet transactions
                properties:
                  pagination:
                    description: Get wallet transactions
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
  /user/balance:
    post:
      tags:
        - User-API
      summary: Get balance for current user
      description: Return a Money object for the users current balance
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Money'
      security:
        - cockpit_oauth: []
  /ai/generate-image:
    post:
      tags:
        - Image-API
      summary: Generate media using AI
      operationId: generateMedia
      parameters:
        - name: n_images
          in: query
          description: Number of images to generate
          type: integer
        - name: prompt
          in: query
          description: Prompt for image generation
          type: string
        - name: style_id
          in: query
          description: ID of prefered MediaStyle
          type: integer
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/GeneratedMedia'
        '422':
          description: Validation error or insufficient credits
      security:
        - api_key: []
  /ai/variations/{reference}/upscale:
    post:
      tags:
        - Image-API
      summary: Upscale a variation
      operationId: upscaleVariation
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/Design'
      security:
        - api_key: []
  /ai/designs/{reference}/upscale:
    post:
      tags:
        - Image-API
      summary: Upscale a design
      operationId: upscaleDesign
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/Design'
      security:
        - api_key: []
  /ai/designs/{reference}/remove-background:
    post:
      tags:
        - Image-API
      summary: Remove background from a design
      operationId: removeBackground
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/Design'
        '422':
          description: Validation error or insufficient credits
      security:
        - api_key: []
  /ai/media:
    get:
      tags:
        - Image-API
      summary: Get a list of generated media
      operationId: getGeneratedMediaList
      parameters:
        - name: sort_col
          in: query
          description: 'Column to sort by (default: created_at)'
          type: string
        - name: sort_dir
          in: query
          description: 'Sort direction (default: desc)'
          type: string
        - name: filtered_status
          in: query
          description: Comma-separated list of filtered statuses
          type: string
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/GeneratedMedia'
      security:
        - api_key: []
  /ai/media/{reference}:
    get:
      tags:
        - Image-API
      summary: Get details of a generated media by reference
      operationId: getGeneratedMediaDetails
      parameters:
        - name: reference
          in: path
          description: Reference of the generated media
          required: true
          type: string
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/GeneratedMedia'
      security:
        - api_key: []
  /ai/media-styles:
    get:
      tags:
        - Image-API
      summary: Get a list of media styles
      operationId: getMediaStyles
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/MediaStyle'
      security:
        - api_key: []
  /base-products:
    get:
      tags:
        - Catalog-API
      summary: Get all base products
      description: |-
        Retrieve a list of available base products.
        Optionally, a category can be passed for filtering.
      parameters:
        - name: category
          in: query
          description: 'Filter by category identifier (default: any)'
          required: false
          type: integer
        - name: user_products_only
          in: query
          description: Include user specific products
          required: false
          type: boolean
          default: false
        - name: sku
          in: query
          description: >-
            Filter products with a variant which contains a variant where either
            the sku or internal_sku contains the passed value
          required: false
          type: string
          default: '019420001'
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/Product'
            type: object
      security:
        - cockpit_oauth: []
  /base-products/{base-product-id}:
    get:
      tags:
        - Catalog-API
      summary: Get base product
      description: >-
        Retrieve information on a single base product.

        To get stock level and end of life information please add
        ?include_stock=true to the request

        To get the actual print dimensions per variant add
        ?include_print_dimensions=true to the request
      parameters:
        - name: base-product-id
          in: path
          description: Numerical base product identifier
          required: true
          type: integer
          x-example: 25
        - name: include_stock
          in: query
          description: Include stock information for the product
          required: false
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Product'
        '404':
          description: Product not found
      security:
        - cockpit_oauth: []
  /base-categories:
    get:
      tags:
        - Catalog-API
      summary: List available categories
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: List available categories
                type: array
                items:
                  properties:
                    id:
                      description: Numerical identifier
                      type: integer
                      example: 10
                    name:
                      description: Category name
                      type: string
                      example: Unisex-Shirts
                    sort_position:
                      description: Numerical index used for sorting
                      type: integer
                      example: 1
                  type: object
            type: object
      security:
        - cockpit_oauth: []
  /calculation:
    post:
      tags:
        - other
      summary: Calculate production cost
      description: >-
        Calculate the net production cost for a given product, set of print
        areas and color information. The VAT rate

        rate is preliminary, the final rate depends on the shipping target,
        involvement of business customers and other factors.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              is_colored:
                description: Is this a color print?
                type: boolean
                example: true
              printareas:
                description: Desired print areas
                type: array
                items:
                  type: integer
              product_id:
                description: Desired base product
                type: integer
                example: 375
            type: object
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/MoneyWithVat'
        '404':
          description: Product not found
      security:
        - cockpit_oauth: []
  /delivery-countries:
    get:
      tags:
        - other
      summary: Get delivery targets
      description: >-
        Retrieve a list of valid delivery target countries.

        The result is presented as associative array: The array keys consist of
        upper-case

        two-letter country codes, the corresponding values are the human
        readable country names.
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/Country'
            type: object
      security:
        - cockpit_oauth: []
  /selling-statistics:
    get:
      tags:
        - other
      summary: Get selling statistics
      description: >-
        Retrieve statistics about the current user's sales.

        This endpoint reports the number of sales and the total net amount for
        four different reporting periods: Last 24 hours, last 7 days, last 30
        days and total.
      responses:
        '200':
          description: Success
          schema:
            properties:
              total:
                description: Total net amount
                $ref: '#/definitions/Money'
              month:
                description: Net amount of the last 30 days
                $ref: '#/definitions/Money'
              week:
                description: Net amount of the last 7 days
                $ref: '#/definitions/Money'
              today:
                description: Net amount of the last 24 hours
                $ref: '#/definitions/Money'
              total_amount:
                description: Total number of orders
                type: integer
                example: 36
              month_amount:
                description: Number of orders during the last 30 days
                type: integer
                example: 14
              week_amount:
                description: Number of orders during the last 7 days
                type: integer
                example: 3
              today_amount:
                description: Number of orders during the last 24 hours
                type: integer
                example: 1
            type: object
      security:
        - cockpit_oauth: []
  /orders-statistics:
    get:
      tags:
        - other
      summary: Get order statistics
      description: >-
        Retrieve statistics about the current user's order status distribution.

        This endpoint reports the number of open orders (non-shipped,
        non-canceled) per status (open, preparation, production, clarification)
      responses:
        '200':
          description: Success
          schema:
            properties:
              n_open_orders:
                description: Number of orders with status open
                type: integer
                example: 14
              n_preparation_orders:
                description: Number of orders with status prepration for production
                type: integer
                example: 234
              n_production_orders:
                description: Number of orders with status in production
                type: integer
                example: 122
              n_clarification_orders:
                description: Number of orders with a status clarification or onhold flag
                type: integer
                example: 7
            type: object
      security:
        - cockpit_oauth: []
  /projects:
    get:
      tags:
        - Project-API
      summary: Get all projects / collections
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: products, productInfo
      parameters:
        - name: page
          in: query
          description: Current page
          type: integer
          default: 1
        - name: items
          in: query
          description: Number of items per page
          type: integer
          default: 12
        - name: sort_col
          in: query
          description: >-
            Column used to sort the results. You can sort by: name, reference,
            url, default_preview_position, created_at, updated_at
          type: string
          default: created_at
        - name: sort_dir
          in: query
          description: Direction for sorting
          type: string
          default: DESC
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/Project'
              meta:
                description: Meta information
                properties:
                  pagination:
                    description: >-
                      Get all projects / collections


                      Retrieve all projects available for the currently
                      authenticated user.

                      The projects are automatically paginated, meta information
                      is included in the response.
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
    post:
      tags:
        - Project-API
      summary: Create project / collection
      description: |-
        Create a new project and return the inserted information.
        Associate the project with the currently authenticated user.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              name:
                description: Project name
                type: string
                example: My cool project
              description:
                description: Project description
                type: string
                example: My cool project
              is_deprecated_campaign:
                description: >-
                  indicates if deprecated way for product creation is used (use
                  1/0 instead of true/false)
                type: boolean
                example: '0'
            type: object
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Project'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /projects/{project-reference}:
    get:
      tags:
        - Project-API
      summary: Get project / collection
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: products, productInfo
      parameters:
        - name: project-reference
          in: path
          description: Unique project identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
        - name: include_stock
          in: query
          description: Include stock information for the products
          required: false
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Project'
        '404':
          description: Project not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
    put:
      tags:
        - Project-API
      summary: Update project / Collection
      description: Change information about a project
      parameters:
        - name: project-reference
          in: path
          description: Unique project identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
        - name: body
          in: body
          schema:
            properties:
              name:
                description: Project name
                type: string
                example: My cool project
            type: object
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Project'
        '404':
          description: Project not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
    delete:
      tags:
        - Project-API
      summary: Delete project / collection
      description: Delete the selected project.
      parameters:
        - name: project-reference
          in: path
          description: Unique project identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      responses:
        '204':
          description: Success, project deleted
        '404':
          description: Project not found
        '502':
          description: >-
            Project could not be dleted due to problems to delete product
            integrations
      security:
        - cockpit_oauth: []
  /projects/{project-reference}/products:
    get:
      tags:
        - Project-API
      summary: Get products for a project / collection
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: colors, base_product,
        active_integration_syncs, integration_sync_log, integration_products,
        projectProductColors
      parameters:
        - name: project-reference
          in: path
          description: Unique project identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      responses:
        '200':
          description: Success
          schema:
            property: data
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/CampaignProduct'
        '404':
          description: Project not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
  /projects/{project-reference}/sync:
    post:
      tags:
        - Project-API
      summary: Synchronize integrations
      description: >-
        Trigger synchronization with all integrations defined for this campaign.

        The synchronization is performed in the background. Its status can be
        observed by querying for the attribute "status".

        It has the following enum-values:

        - 'is_queuing',

        - 'is_syncing',

        - 'is_completed'

        - 'has_errors'
      parameters:
        - name: project-reference
          in: path
          description: Unique project identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
        - name: body
          in: body
          schema:
            properties:
              integrations:
                description: Integration ids
                type: array
                items: integer
            type: object
      responses:
        '204':
          description: Success, all integrations processed
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /products:
    get:
      tags:
        - Product-API
      summary: Get all products
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: colors, base_product,
        active_integration_syncs, integration_sync_log, integration_products,
        projectProductColors
      parameters:
        - name: finished
          in: query
          description: Only return products where rendering is finished.
          required: false
          type: integer
        - name: search
          in: query
          description: >-
            A search term used to filter on the product and product group
            (collection) names.
          required: false
          type: string
        - name: project_id
          in: query
          description: Return only products for a given campaign
          required: false
          type: string
          x-example: CP4F7C8D1BEF
        - name: design_id
          in: query
          description: >-
            Return only products which contain a processingarea where the design
            for the given design_id is used
          required: false
          type: string
          x-example: 03eaf83f-b61a-4c71-b228-1f08023ce4fc
        - name: base_product_id
          in: query
          description: Return which are based on the given base product id
          required: false
          type: integer
          x-example: 235
        - name: tags
          in: query
          description: Filter for products containing a given tag
          required: false
          type: string
          x-example: myTag
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/CampaignProduct'
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
  /products/{product-id}:
    get:
      tags:
        - Product-API
      summary: Get product
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: colors, base_product,
        active_integration_syncs, integration_sync_log, integration_products,
        projectProductColors
      parameters:
        - name: product-id
          in: path
          description: Numerical product identifier
          required: true
          type: integer
          x-example: 25
        - name: include_stock
          in: query
          description: Include stock information for the product
          required: false
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/CampaignProduct'
        '404':
          description: Product not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-project
  /products/{productId}:
    put:
      tags:
        - Product-API
      summary: Update product
      description: >-
        Update names, descriptions, prices and add/delete a product of the
        authenticated user.
      parameters:
        - name: productId
          in: path
          description: ID of the product to update
          required: true
          type: integer
          x-example: 123
        - name: body
          in: body
          schema:
            properties:
              custom_name:
                description: Product name
                type: string
                example: My cool product
              price:
                description: Gross product price in Euro-cents
                type: integer
                example: 400
              description:
                description: Short description
                type: string
              tags:
                description: List of tags for this product
                type: array
                items:
                  type: string
              colors:
                description: List of color ids
                type: array
                items:
                  type: integer
              delete_unmentioned_colors:
                description: >-
                  Set to true if colors which are stored but do not appear in
                  the request should be deleted. Default: false
                type: bool
              sort_position:
                description: Set a sort position for this product within its project
                type: integer
                example: '1'
            type: object
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/CampaignProduct'
        '404':
          description: Product not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
    delete:
      tags:
        - Product-API
      summary: Delete product
      parameters:
        - name: productId
          in: path
          description: ID of the product to delete
          required: true
          type: integer
          x-example: 123
      responses:
        '204':
          description: Success, product deleted
        '404':
          description: Product not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /products/{product-id}/sync:
    post:
      tags:
        - Product-API
      summary: Synchronize integrations
      description: >-
        Trigger synchronization for all requested integrations for this product.

        The synchronization is performed in the background. Its status can be
        observed by querying the

        active_integration_syncs field in the product response.
      parameters:
        - name: product-id
          in: path
          description: Numerical product identifier
          required: true
          type: integer
          x-example: 25
        - name: body
          in: body
          schema:
            properties:
              integrations:
                description: Integration ids
                type: array
                items: integer
            type: object
      responses:
        '204':
          description: Success, all integrations processed
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /customized-product:
    post:
      tags:
        - Product-API
      summary: Create product
      description: >-
        Use this endpoint to a create a product based on a specific baseProduct.
        The product can be customized on the baseProduct color level. This
        allows you to have a different design, size and positioning for each
        baseProduct color. Each processing can be associated to one or many
        colorIds. Multiple processings can be added. Workflow: create project,
        add customized-products
      parameters:
        - name: body
          in: body
          schema:
            required:
              - project_id
              - base_product_id
              - processings
            properties:
              project_id:
                description: Identifier of existing project
                type: string
                example: CP94791DFD28
              base_product_id:
                description: Identifier of desired base product
                type: integer
                example: 235
              price:
                description: Product price in cents
                type: integer
                example: 2999
              custom_name:
                description: Custom product name
                type: string
                example: My Custom Product
              sort_position:
                description: Sort position
                type: integer
                example: 1
              tags:
                description: Product tags
                type: array
                items:
                  type: string
                  example: tag1
              description:
                description: Product description
                type: string
              integration_feature_description:
                description: Integration feature description
                type: array
                items:
                  type: string
              brandings:
                description: Product brandings
                type: array
                items:
                  type: string
              processings:
                description: List of processings to apply
                type: array
                items:
                  properties:
                    processingarea_type:
                      description: Processing area type
                      type: string
                      example: front
                    processingposition:
                      description: Processing position
                      type: string
                      default: chest-center
                      example: chest-center
                    processingmethod:
                      description: Processing method
                      type: string
                      default: dtg
                      example: dtg
                    design_reference:
                      description: Design for the customization
                      type: string
                      example: 310ef229-2254-4f4f-9041-a8e02674ff36
                    offset_top:
                      description: Vertical offset from top in millimeters
                      type: integer
                      default: 0
                      example: 50
                    offset_center:
                      description: Horizontal offset from center in millimeters
                      type: integer
                      default: 0
                      example: 0
                    width:
                      description: Design width in millimeters
                      type: string
                      example: 200
                    is_customizable:
                      description: >-
                        Flag to indicate if order products can be customized
                        after order was placed
                      type: boolean
                      default: false
                      example: false
                    is_blank_design:
                      description: Flag to indicate if order products have blank designs
                      type: boolean
                      default: false
                      example: false
                    force_position:
                      description: >-
                        Flag to indicate if the positioning should be used as
                        set or adjusted by the auto-positiponing (recommended).
                      type: boolean
                      default: false
                      example: false
                    mockups:
                      description: >-
                        List of ids for the desired mockups for this product
                        processing
                      type: array
                      items:
                        type: integer
                        example: 123
                    colors:
                      description: >-
                        List of baseProduct colors which should be assigned to
                        this processing
                      type: array
                      items:
                        properties:
                          colorId:
                            description: Numeric identifier of baseProduct color
                            type: integer
                            example: 608
                          price:
                            description: Your sales price for this product color in cents
                            type: integer
                            example: 2195
                          sortPosition:
                            description: sort position for this color
                            type: integer
                            example: 1
                        type: object
                  type: object
            type: object
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/CampaignProduct'
            type: object
        '401':
          description: Unauthorized (no credentials or not eligible for ordering)
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /customized-product/{productId}:
    put:
      tags:
        - Product-API
      summary: Update product colors
      description: >-
        Use this endpoint to update an existing product. The product can be
        customized on the baseProduct color level similar to the create
        endpoint.

        Each processing can be associated to one or many colorIds. Multiple
        processings can be added.

        Instead of the complete processing information (design, width, position
        info) it is possible to pass a baseProduct color id as a
        referenceColorId.

        In this case all processing information is created based on the existing
        processings for the reference color.
      parameters:
        - name: UpdateProductColors
          in: body
          schema:
            required:
              - processings
            properties:
              processings:
                description: List of processings to add / update
                type: array
                items:
                  properties:
                    processingarea_type:
                      description: >-
                        Processing area type. Not required when only prices are
                        adjusted
                      type: string
                      example: front
                    processingposition:
                      description: Processing position
                      type: string
                      default: chest-center
                      example: chest-center
                    processingmethod:
                      description: Processing method
                      type: string
                      default: dtg
                      example: dtg
                    design_reference:
                      description: >-
                        Design for the customization. This parameter if new
                        colors are added and the referenceColor option is not
                        used.
                      type: string
                      example: 310ef229-2254-4f4f-9041-a8e02674ff36
                    offset_top:
                      description: >-
                        Vertical offset from top in millimeters. This parameter
                        if new colors are added and the referenceColor option is
                        not used.
                      type: integer
                      default: 0
                      example: 50
                    offset_center:
                      description: >-
                        Horizontal offset from center in millimeters.  This
                        parameter if new colors are added and the referenceColor
                        option is not used.
                      type: integer
                      default: 0
                      example: 0
                    width:
                      description: >-
                        Design width in millimeters.  This parameter if new
                        colors are added and the referenceColor option is not
                        used.
                      type: string
                      example: 200
                    is_customizable:
                      description: >-
                        inidicated if order products can be customized after
                        order was placed
                      type: boolean
                      default: 'false'
                      example: 'false'
                    force_position:
                      description: >-
                        inidicated if order products can be customized after
                        order was placed
                      type: boolean
                      default: 'false'
                      example: 'false'
                    colors:
                      description: >-
                        List of baseProduct colors which should be assigned to
                        this processing
                      type: array
                      items:
                        properties:
                          colorId:
                            description: Numeric identifier of baseProduct color
                            type: integer
                            example: 608
                          referenceColorId:
                            description: >-
                              A reference color, where all processing info is
                              taken from and used as the basis for the added
                              colors.
                            type: integer
                            example: 2195
                          price:
                            description: Your sales price for this product color in cents
                            type: integer
                            example: 2195
                          sortPosition:
                            description: sort position for this color
                            type: integer
                            example: 1
                  type: object
            type: object
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/CampaignProduct'
            type: object
        '401':
          description: Unauthorized (no credentials or not eligible for ordering)
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /products/{productId}/images:
    post:
      tags:
        - Product-API
      summary: Add Image for ProductColor
      consumes:
        - multipart/form-data
      parameters:
        - name: productId
          in: path
          description: ID of the product to add image to
          required: true
          type: integer
          x-example: 123
        - name: url
          in: query
          description: Url
          type: string
        - name: style
          in: query
          description: Style
          type: string
        - name: procesingarea_type
          in: query
          description: Processing Area type
          type: string
        - name: name
          in: query
          description: Name
          type: string
        - name: sort_weight
          in: query
          description: Sort weight
          type: integer
      responses:
        '200':
          description: Success, product image was added
        '422':
          description: Error, image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /products/{projectProductId}/mockups:
    put:
      tags:
        - Product-API
      summary: Update Product Mockups
      description: >-
        Updates the mockups associated with a project product. It allows adding
        new mockups and removing existing ones based on provided mockup IDs.

        Ensures that at least one mockup remains after updates to prevent
        product mockup configurations from being empty.
      operationId: updateProductMockups
      parameters:
        - name: projectProductId
          in: path
          description: The unique identifier of the project product
          required: true
          type: integer
        - name: body
          in: body
          description: List of mockup IDs to update
          required: true
          schema:
            properties:
              mockups:
                description: Array of mockup IDs to be updated or removed
                type: array
                items:
                  type: integer
            type: object
      responses:
        '200':
          description: Mockups updated successfully
          schema:
            properties:
              message:
                description: >-
                  Update Product Mockups


                  Updates the mockups associated with a project product. It
                  allows adding new mockups and removing existing ones based on
                  provided mockup IDs.

                  Ensures that at least one mockup remains after updates to
                  prevent product mockup configurations from being empty.
                type: string
                example: Mockups updated successfully
            type: object
        '404':
          description: Product not found
          schema:
            properties:
              error:
                description: >-
                  Update Product Mockups


                  Updates the mockups associated with a project product. It
                  allows adding new mockups and removing existing ones based on
                  provided mockup IDs.

                  Ensures that at least one mockup remains after updates to
                  prevent product mockup configurations from being empty.
                type: string
                example: Product not found
            type: object
        '422':
          description: Validation error or the product needs at least one mockup
          schema:
            properties:
              error:
                description: >-
                  Update Product Mockups


                  Updates the mockups associated with a project product. It
                  allows adding new mockups and removing existing ones based on
                  provided mockup IDs.

                  Ensures that at least one mockup remains after updates to
                  prevent product mockup configurations from being empty.
                type: string
                example: Some mockups are invalid or not assigned to the base product
              invalid_mockups:
                description: List of invalid mockup IDs
                type: array
                items:
                  type: integer
              additional_error:
                description: >-
                  Update Product Mockups


                  Updates the mockups associated with a project product. It
                  allows adding new mockups and removing existing ones based on
                  provided mockup IDs.

                  Ensures that at least one mockup remains after updates to
                  prevent product mockup configurations from being empty.
                type: string
                example: >-
                  After performing the action the product needs at least one
                  mockup.
            type: object
      security:
        - api_key: []
        - bearerAuth: []
  /coupons/{coupon_code}:
    get:
      tags:
        - Order-API
      summary: Get coupon info
      description: Retrieve information about a single order coupon.
      parameters:
        - name: coupon_code
          in: path
          description: Alphanumerical coupon identifier as provided to the customer
          required: true
          type: string
          x-example: Shirt-coupon-XYZ
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Coupon'
        '404':
          description: Coupon not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-order
  /designs:
    get:
      tags:
        - Design-API
      summary: Get all designs
      description: >-
        Retrieve a paginated list of available designs of the currently
        authenticated user.
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/Design'
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-design
  /designs/{design-reference}:
    get:
      tags:
        - Design-API
      summary: Get design
      description: >-
        Retrieve information about a single design.

        Only searches designs that are available to the currently authenticated
        user.
      parameters:
        - name: design-reference
          in: path
          description: Unique design identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Design'
        '404':
          description: Design not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-design
    put:
      tags:
        - Design-API
      summary: Update design
      description: Update a single design based on the parameters given in the form body.
      parameters:
        - name: design-reference
          in: path
          description: Unique design identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
        - name: body
          in: body
          schema:
            properties:
              name:
                description: name of the design
                type: string
              tags:
                description: List of tags for this design
                type: array
                items:
                  type: string
              colors:
                description: >-
                  List of hex-color pairs with the currently used color and the
                  color to replace. Only available for embroidery design files.
                type: array
                items:
                  properties:
                    F2E9EA:
                      description: >-
                        Update design


                        Update a single design based on the parameters given in
                        the form body.
                      type: string
                      example: 25282A
                    D0DF00:
                      description: >-
                        Update design


                        Update a single design based on the parameters given in
                        the form body.
                      type: string
                      example: 84754E
                  type: object
            type: object
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Design'
        '404':
          description: Design not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-design
    delete:
      tags:
        - Design-API
      summary: Delete design
      description: Only designs by the currently authenticated user may be deleted.
      parameters:
        - name: design-reference
          in: path
          description: Unique design identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      responses:
        '204':
          description: Success, design deleted
        '404':
          description: Design not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-design
  /designs/file:
    post:
      tags:
        - Design-API
      summary: Create design from file
      description: >-
        Create a new design from the submitted file.


        The file must be at least 1000px in width or height and must be
        formatted either as PNG- or JPEG raster image.


        The endpoint returns the created design.
      consumes:
        - multipart/form-data
      parameters:
        - name: body
          in: body
          schema:
            properties:
              processingmethod:
                description: >-
                  The processingmethod for which the design will be used (dtg,
                  embroidery, engraving)
                type: string
                example: dtg
              name:
                description: name for the design
                type: string
                example: my-design
              tags:
                description: List of tags for this design
                type: array
                items:
                  type: string
            type: object
        - name: file
          in: formData
          description: Design file
          type: file
      responses:
        '200':
          description: Success, all file has been processed
          schema:
            type: object
            $ref: '#/definitions/Design'
        '422':
          description: Error, image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-design
  /designs/base64:
    post:
      tags:
        - Design-API
      summary: Create design from base64-encoded data
      description: |-
        Create a new design from the base64-encoded data

        The endpoint returns the created design.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              data:
                description: Base64-encoded data
                type: string
              original_filename:
                description: Original file name (optional)
                type: string
              processingmethod:
                description: >-
                  The processingmethod for which the design will be used (dtg,
                  embroidery, engraving)
                type: string
                example: dtg
              name:
                description: name for the design
                type: string
                example: my-design
              tags:
                description: List of tags for this design
                type: array
                items:
                  type: string
            type: object
      responses:
        '200':
          description: Success, URL has been processed
          schema:
            type: object
            $ref: '#/definitions/Design'
        '422':
          description: Error, URL / image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-design
  /designs/url:
    post:
      tags:
        - Design-API
      summary: Create design from URL
      description: |-
        Create a new design from the submitted URL.

        The endpoint returns the created design.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              url:
                description: Design file URL
                type: string
              processingmethod:
                description: >-
                  The processingmethod for which the design will be used (dtg,
                  embroidery, engraving)
                type: string
                example: dtg
              name:
                description: name for the design
                type: string
                example: my-design
              tags:
                description: List of tags for this design
                type: array
                items:
                  type: string
            type: object
      responses:
        '200':
          description: Success, URL has been processed
          schema:
            type: object
            $ref: '#/definitions/Design'
        '422':
          description: Error, URL / image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-design
  /fulfillment-modes:
    get:
      tags:
        - other
      summary: Get all fulfillment_modes
      description: >-
        Retrieve a list of available fulfillment_modes, which are available to
        authenticated user.
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned Items
                type: array
                items:
                  $ref: '#/definitions/FulfillmentMode'
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth: []
  /integrations/{integration_id}:
    get:
      tags:
        - Integration-API
      summary: Get UserIntegration
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: fulfillmentPolicy, regions, defaultStock
      parameters:
        - name: body
          in: body
          schema:
            properties:
              syncs:
                description: Includes current product states
                type: integer
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/UserIntegration'
        '404':
          description: integration not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
    put:
      tags:
        - Integration-API
      summary: Update UserIntegration
      description: |-
        Update settings for a single user integration.

        The endpoint returns the updated integration.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              is_auto_onhold:
                description: >-
                  Indicates if order is automatically pushed to production
                  (default = false)
                type: boolean
                example: true
              is_auto_pull_orders:
                description: >-
                  Indicates if orders will be pulled and processed by Cockpit
                  automatically (default = false)
                type: boolean
                example: true
              default_first_packin_reference:
                description: >-
                  Default first packin added to orders received via this
                  intergrations (optional)
                type: string
                example: ABC123
              default_second_packin_reference:
                description: >-
                  Default second packin added to orders received via this
                  intergrations (optional)
                type: string
                example: ABC123
              default_hangtag_reference:
                description: >-
                  Default hangtag added to all textil products of orders
                  received via this intergrations (optional)
                type: string
                example: ABC123
              default_imprint_reference:
                description: >-
                  Default imprinted added to all tagless textil products of
                  orders received via this intergrations (optional)
                type: string
                example: ABC123
              default_label_reference:
                description: >-
                  Default label added to all textil products of orders received
                  via this intergrations (optional)
                type: string
                example: ABC123
              default_product_packaging_reference:
                description: >-
                  Default packaging used for all textil products of orders
                  received via this intergrations (optional)
                type: string
                example: ABC123
              default_order_packaging_reference:
                description: >-
                  Default packging used for all orders received via this
                  intergrations (optional)
                type: string
                example: ABC123
              default_sticker_reference:
                description: >-
                  Default sticker applied to packaging of orders received via
                  this intergrations (optional)
                type: string
                example: ABC123
              add_delivery_receipt:
                description: >-
                  Indicates if delivery receipt is added to orders received via
                  this intergrations
                type: boolean
                example: true
              delivery_receipt_note:
                description: Custom note on delivery receipt
                type: string
                example: Use voucher XYZ and get a 10% discount for your next order
              use_custom_product_name:
                description: Indicates if custom product name is used on delivery receipt
                type: boolean
                example: true
              default_product_inventory:
                description: Default stock-inventory for UserIntegration (Optional)
                type: integer
                example: '5'
              sales_channel:
                description: UserIntegration sales channel
                type: string
                example: Storefront
              fulfillment_mode_key:
                description: >-
                  Key of the fulfillment mode to be used if available for orders
                  with this integration 
                type: string
                example: 24h-express
              fulfillmentPolicy:
                description: Fulfillment-Policy
                type: array
                items:
                  properties:
                    national_shipping_cost:
                      description: National shipping prise
                      type: float
                      example: '2.00'
                    international_shipping_cost:
                      description: International shipping prise
                      type: float
                      example: '2.00'
                    international_additional_shipping_cost:
                      description: International shipping prise for additional articles
                      type: float
                      example: '2.00'
                    handling_time:
                      description: >-
                        Maximum number of business days the seller needs for
                        preparing and shipping an order after receiving a
                        cleared payment for the order.
                      type: integer
                      example: '5'
                  type: object
              regions:
                description: Declaration of regions a packet will be sent to
                type: array
                items:
                  properties:
                    region_included:
                      description: Region an oder may be shipped.
                      type: string
                      example: Worldwide
                  type: object
            type: object
      responses:
        '200':
          description: Success, URL has been processed
        '422':
          description: Error, Something goes wrong
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
    delete:
      tags:
        - Integration-API
      summary: Delete UserIntegration
      description: >-
        Uninstall this integration from your 3rd party store and delete the
        integration. IMPORTANT: all synchronized products will be deleted as
        well in the 3rd party store.
      parameters:
        - name: design-reference
          in: path
          description: Unique design identifier
          required: true
          type: string
          x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      responses:
        '204':
          description: Success, integration uninstalled and deleted
        '404':
          description: integration not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /integrations/{integration_id}/products:
    get:
      tags:
        - Integration-API
      summary: Get UserIntegration
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: colors, base_product,
        active_integration_syncs, integration_sync_log, integration_products,
        projectProductColors
      parameters:
        - name: body
          in: body
          schema:
            properties:
              syncs:
                description: Includes current product states
                type: integer
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/UserIntegration'
        '404':
          description: integration not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /media/order-document:
    post:
      tags:
        - Order-API
      summary: Upload Order Document
      description: >-
        Upload and store a document file related to an order. Accepts either a
        file upload or a base64 encoded PDF string.
      consumes:
        - multipart/form-data
        - application/json
      produces:
        - application/json
      parameters:
        - name: file
          in: formData
          description: >-
            The document file to upload (required if base64_file is not
            provided)
          required: false
          type: file
        - name: type
          in: formData
          description: The type of document being uploaded.
          required: true
          type: string
          enum:
            - delivery-receipt
            - merchant-invoice
            - return-label
        - name: body
          in: body
          description: JSON body for base64 file upload
          required: false
          schema:
            properties:
              base64_file:
                description: Base64 encoded PDF string
                type: string
              type:
                description: Upload a document for an order
                type: string
                enum:
                  - delivery-receipt
                  - merchant-invoice
                  - return-label
            type: object
      responses:
        '200':
          description: Document uploaded successfully
          schema:
            properties:
              data:
                description: Upload a document for an order
                type: object
        '422':
          description: Validation error
      security:
        - Bearer: []
  /mockup-factory/generate-image:
    post:
      tags:
        - Image-API
      summary: Generate Mockup Images
      description: Generates custom mockup images based on the specifications provided.
      parameters:
        - name: body
          in: body
          description: Mockup generation parameters
          required: true
          schema:
            required:
              - base_product_id
              - mockup_ids
            properties:
              external_job_reference:
                description: External reference to track the job
                type: string
                example: 100
              base_product_id:
                description: ID of the base product
                type: integer
                example: 235
              base_product_skus:
                description: SKUs (internal_sku) of the base product variants
                type: array
                items:
                  type: string
              color_ids:
                description: >-
                  Alternative to SKUs, IDs of colors if specific colors are to
                  be used
                type: array
                items:
                  type: integer
                example: 325
              mockup_ids:
                description: IDs of mockups to generate
                type: array
                items:
                  type: integer
              processingarea_type_key:
                description: Type of the processing area for the mockup
                type: string
                example: front
              processing_method_key:
                description: Processing method key, e.g., 'dtg'
                type: string
                example: dtg
              mockup_width_px:
                description: >-
                  Width of the mockup in pixels; assumed to be square; max.
                  2000px
                type: integer
                example: 2000
              design_url:
                description: URL of the design to be used in the mockup
                type: string
                example: https://www.mysite.com/sample.png
              design_width_mm:
                description: Width of the design in millimeters
                type: integer
                example: 200
              design_height_mm:
                description: Height of the design in millimeters
                type: integer
                example: 150
              design_y_top_mm:
                description: Top offset of the design in millimeters
                type: integer
                example: 50
              design_x_center_mm:
                description: Center offset of the design in millimeters
                type: integer
                example: 0
              format:
                description: Format of the generated image, 'jpg' or 'png' allowed
                type: string
                example: png
              background_color_hex:
                description: Hex code of the background color
                type: string
                example: FFFFFF
              background_url:
                description: URL of the background image
                type: string
            type: object
      responses:
        '200':
          description: Mockup generated successfully
          schema:
            properties:
              success:
                description: >-
                  Generate Mockup Images


                  This endpoint allows users to generate custom mockup images
                  based on the specified parameters.

                  Users must provide base product details, color specifications,
                  and desired mockups along with design and processing
                  instructions.

                  The baseProduct colors to be rendered can either be defined by
                  a combination of base_product_id and base_product_color_ids or
                  by base_product_skus. If all three paramters are provided, the
                  skus will not be taken into consideration.

                  Note: Mockup Factory only supports mockups where is_legacy is
                  false
                type: boolean
                example: true
              message:
                description: >-
                  Generate Mockup Images


                  This endpoint allows users to generate custom mockup images
                  based on the specified parameters.

                  Users must provide base product details, color specifications,
                  and desired mockups along with design and processing
                  instructions.

                  The baseProduct colors to be rendered can either be defined by
                  a combination of base_product_id and base_product_color_ids or
                  by base_product_skus. If all three paramters are provided, the
                  skus will not be taken into consideration.

                  Note: Mockup Factory only supports mockups where is_legacy is
                  false
                type: string
                example: Mockup generation initiated successfully.
            type: object
        '401':
          description: Unauthorized
        '422':
          description: Validation failed for one or more parameters.
      security:
        - api_auth: []
  /mockup-factory/rendering-tasks:
    get:
      tags:
        - Image-API
      summary: Get Rendering Tasks
      description: >-
        Retrieves a paginated list of mockup-factory rendering tasks for the
        authenticated user. This endpoint can be used to

        fetch all the rendering tasks generated by the user, allowing them to
        track progress or results.

        You can register a webhook for the event GeneratedMedia.rendered
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: List of rendering tasks
                type: array
                items:
                  $ref: '#/definitions/RenderingTask'
            type: object
        '403':
          description: Unauthorized
        '500':
          description: Server Error
      security:
        - api_key: []
  /mockup-factory/rendering-tasks/{reference}:
    get:
      tags:
        - Image-API
      summary: Get Rendering Task by Reference
      description: >-
        Retrieves detailed information about a specific mockup-factory rendering
        task associated with the given reference

        identifier. This endpoint is intended for users to fetch detailed
        information about a specific task, including

        its variations and current status.
      parameters:
        - name: reference
          in: path
          description: Unique reference of the rendering task
          required: true
          type: string
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: >-
                  Get Rendering Task by Reference


                  Retrieves detailed information about a specific mockup-factory
                  rendering task associated with the given reference

                  identifier. This endpoint is intended for users to fetch
                  detailed information about a specific task, including

                  its variations and current status.
                $ref: '#/definitions/RenderingTask'
            type: object
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
        - api_key: []
  /orders:
    get:
      tags:
        - Order-API
      summary: Get all orders
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: parent, children, comments, products,
        warehouseProducts, payments, orderStatusEntries, shipping, packins
      parameters:
        - name: page
          in: query
          description: Page number
          type: integer
          default: 1
        - name: filter
          in: query
          description: Filter by order status id
          type: integer
          default: 1
        - name: items
          in: query
          description: Items per page
          type: integer
          default: 12
        - name: search
          in: query
          description: Search query
          type: integer
        - name: sort_col
          in: query
          description: Property to order by
          type: string
          default: ''
        - name: sort_dir
          in: query
          description: Order direction
          type: string
          default: asc
          enum:
            - asc
            - desc
        - name: period
          in: query
          description: 'Days to show (default: all)'
          type: integer
        - name: secondary_filter
          in: query
          description: Secondary filter level (e.g. filter reprint orders)
          type: string
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/Order'
              meta:
                description: Meta information
                properties:
                  pagination:
                    description: >-
                      Get all orders


                      Retrieve all orders issued by the currently authenticated
                      user.

                      The result will be paginated, meta information is included
                      in the response.
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-order
    post:
      tags:
        - Order-API
      summary: Create order
      description: >-
        Submit a new order for the currently authenticated user.

        The user must have at least one registered and active billing method.

        A delivery address is required. The billing address is taken from the
        account data.

        The sender information is optional; if not provided, the current user
        information will be used.

        Our complete base product catalog can be downloaded as an XLSX file in
        the Cockpit dashboard (Import -> Download -> Product Catalog).


        You can either:

        1. Order existing products using their SKU (including warehouse products
        starting with "WV-")

        2. Order custom base products using base_product_sku with custom
        processings
      parameters:
        - name: body
          in: body
          required: true
          schema:
            required:
              - delivery
              - products
            properties:
              delivery:
                description: >-
                  Create order


                  Submit a new order for the currently authenticated user.

                  The user must have at least one registered and active billing
                  method.

                  A delivery address is required. The billing address is taken
                  from the account data.

                  The sender information is optional; if not provided, the
                  current user information will be used.

                  Our complete base product catalog can be downloaded as an XLSX
                  file in the Cockpit dashboard (Import -> Download -> Product
                  Catalog).


                  You can either:

                  1. Order existing products using their SKU (including
                  warehouse products starting with "WV-")

                  2. Order custom base products using base_product_sku with
                  custom processings
                $ref: '#/definitions/OrderAddress'
              sender:
                description: >-
                  Create order


                  Submit a new order for the currently authenticated user.

                  The user must have at least one registered and active billing
                  method.

                  A delivery address is required. The billing address is taken
                  from the account data.

                  The sender information is optional; if not provided, the
                  current user information will be used.

                  Our complete base product catalog can be downloaded as an XLSX
                  file in the Cockpit dashboard (Import -> Download -> Product
                  Catalog).


                  You can either:

                  1. Order existing products using their SKU (including
                  warehouse products starting with "WV-")

                  2. Order custom base products using base_product_sku with
                  custom processings
                $ref: '#/definitions/OrderAddress'
              gpsr-manufacturer:
                description: >-
                  Create order


                  Submit a new order for the currently authenticated user.

                  The user must have at least one registered and active billing
                  method.

                  A delivery address is required. The billing address is taken
                  from the account data.

                  The sender information is optional; if not provided, the
                  current user information will be used.

                  Our complete base product catalog can be downloaded as an XLSX
                  file in the Cockpit dashboard (Import -> Download -> Product
                  Catalog).


                  You can either:

                  1. Order existing products using their SKU (including
                  warehouse products starting with "WV-")

                  2. Order custom base products using base_product_sku with
                  custom processings
                $ref: '#/definitions/OrderAddress'
              gpsr-representative:
                description: >-
                  Create order


                  Submit a new order for the currently authenticated user.

                  The user must have at least one registered and active billing
                  method.

                  A delivery address is required. The billing address is taken
                  from the account data.

                  The sender information is optional; if not provided, the
                  current user information will be used.

                  Our complete base product catalog can be downloaded as an XLSX
                  file in the Cockpit dashboard (Import -> Download -> Product
                  Catalog).


                  You can either:

                  1. Order existing products using their SKU (including
                  warehouse products starting with "WV-")

                  2. Order custom base products using base_product_sku with
                  custom processings
                $ref: '#/definitions/OrderAddress'
              delayed_address_validation:
                description: >-
                  When set to true, only basic address validation is performed
                  (street, postcode, city and country exists). Orders with
                  invalid addresses will be set to 'order clarification' status
                  instead of being rejected. The address must be corrected later
                  via dashboard or update order endpoint.
                type: boolean
                example: false
              products:
                description: >-
                  List of products to order. Can contain existing products
                  (using SKU), warehouse products (using SKU starting with
                  'WV-'), or custom base products (using base_product_sku).
                type: array
                items:
                  properties:
                    sku:
                      description: >-
                        SKU of existing product or warehouse product (starts
                        with 'WV-')
                      type: string
                    base_product_sku:
                      description: SKU of base product variant for custom items
                      type: string
                    amount:
                      description: Amount of this product
                      type: integer
                    sales_price_gross:
                      description: Sales price in cents (only for custom base products)
                      type: integer
                    external_reference:
                      description: Your internal reference for this product
                      type: string
                    customizations:
                      description: Custom fields for this product
                      type: object
                      example:
                        my_textfield_1: John
                        my_textfield_2: Doe
                    branding:
                      description: Branding information for this product
                      properties:
                        hangtag_reference:
                          description: >-
                            Create order


                            Submit a new order for the currently authenticated
                            user.

                            The user must have at least one registered and
                            active billing method.

                            A delivery address is required. The billing address
                            is taken from the account data.

                            The sender information is optional; if not provided,
                            the current user information will be used.

                            Our complete base product catalog can be downloaded
                            as an XLSX file in the Cockpit dashboard (Import ->
                            Download -> Product Catalog).


                            You can either:

                            1. Order existing products using their SKU
                            (including warehouse products starting with "WV-")

                            2. Order custom base products using base_product_sku
                            with custom processings
                          type: string
                        product_packaging_reference:
                          description: >-
                            Create order


                            Submit a new order for the currently authenticated
                            user.

                            The user must have at least one registered and
                            active billing method.

                            A delivery address is required. The billing address
                            is taken from the account data.

                            The sender information is optional; if not provided,
                            the current user information will be used.

                            Our complete base product catalog can be downloaded
                            as an XLSX file in the Cockpit dashboard (Import ->
                            Download -> Product Catalog).


                            You can either:

                            1. Order existing products using their SKU
                            (including warehouse products starting with "WV-")

                            2. Order custom base products using base_product_sku
                            with custom processings
                          type: string
                        imprint_reference:
                          description: >-
                            Create order


                            Submit a new order for the currently authenticated
                            user.

                            The user must have at least one registered and
                            active billing method.

                            A delivery address is required. The billing address
                            is taken from the account data.

                            The sender information is optional; if not provided,
                            the current user information will be used.

                            Our complete base product catalog can be downloaded
                            as an XLSX file in the Cockpit dashboard (Import ->
                            Download -> Product Catalog).


                            You can either:

                            1. Order existing products using their SKU
                            (including warehouse products starting with "WV-")

                            2. Order custom base products using base_product_sku
                            with custom processings
                          type: string
                        label_reference:
                          description: >-
                            Create order


                            Submit a new order for the currently authenticated
                            user.

                            The user must have at least one registered and
                            active billing method.

                            A delivery address is required. The billing address
                            is taken from the account data.

                            The sender information is optional; if not provided,
                            the current user information will be used.

                            Our complete base product catalog can be downloaded
                            as an XLSX file in the Cockpit dashboard (Import ->
                            Download -> Product Catalog).


                            You can either:

                            1. Order existing products using their SKU
                            (including warehouse products starting with "WV-")

                            2. Order custom base products using base_product_sku
                            with custom processings
                          type: string
                      type: object
                    processings:
                      description: List of processings for custom base products
                      type: array
                      items:
                        properties:
                          processingarea_type:
                            description: >-
                              Create order


                              Submit a new order for the currently authenticated
                              user.

                              The user must have at least one registered and
                              active billing method.

                              A delivery address is required. The billing
                              address is taken from the account data.

                              The sender information is optional; if not
                              provided, the current user information will be
                              used.

                              Our complete base product catalog can be
                              downloaded as an XLSX file in the Cockpit
                              dashboard (Import -> Download -> Product Catalog).


                              You can either:

                              1. Order existing products using their SKU
                              (including warehouse products starting with "WV-")

                              2. Order custom base products using
                              base_product_sku with custom processings
                            type: string
                          processingposition:
                            description: >-
                              Create order


                              Submit a new order for the currently authenticated
                              user.

                              The user must have at least one registered and
                              active billing method.

                              A delivery address is required. The billing
                              address is taken from the account data.

                              The sender information is optional; if not
                              provided, the current user information will be
                              used.

                              Our complete base product catalog can be
                              downloaded as an XLSX file in the Cockpit
                              dashboard (Import -> Download -> Product Catalog).


                              You can either:

                              1. Order existing products using their SKU
                              (including warehouse products starting with "WV-")

                              2. Order custom base products using
                              base_product_sku with custom processings
                            type: string
                          design_url:
                            description: >-
                              Create order


                              Submit a new order for the currently authenticated
                              user.

                              The user must have at least one registered and
                              active billing method.

                              A delivery address is required. The billing
                              address is taken from the account data.

                              The sender information is optional; if not
                              provided, the current user information will be
                              used.

                              Our complete base product catalog can be
                              downloaded as an XLSX file in the Cockpit
                              dashboard (Import -> Download -> Product Catalog).


                              You can either:

                              1. Order existing products using their SKU
                              (including warehouse products starting with "WV-")

                              2. Order custom base products using
                              base_product_sku with custom processings
                            type: string
                          width:
                            description: >-
                              Create order


                              Submit a new order for the currently authenticated
                              user.

                              The user must have at least one registered and
                              active billing method.

                              A delivery address is required. The billing
                              address is taken from the account data.

                              The sender information is optional; if not
                              provided, the current user information will be
                              used.

                              Our complete base product catalog can be
                              downloaded as an XLSX file in the Cockpit
                              dashboard (Import -> Download -> Product Catalog).


                              You can either:

                              1. Order existing products using their SKU
                              (including warehouse products starting with "WV-")

                              2. Order custom base products using
                              base_product_sku with custom processings
                            type: integer
                          height:
                            description: >-
                              Create order


                              Submit a new order for the currently authenticated
                              user.

                              The user must have at least one registered and
                              active billing method.

                              A delivery address is required. The billing
                              address is taken from the account data.

                              The sender information is optional; if not
                              provided, the current user information will be
                              used.

                              Our complete base product catalog can be
                              downloaded as an XLSX file in the Cockpit
                              dashboard (Import -> Download -> Product Catalog).


                              You can either:

                              1. Order existing products using their SKU
                              (including warehouse products starting with "WV-")

                              2. Order custom base products using
                              base_product_sku with custom processings
                            type: integer
                        type: object
                  type: object
                example:
                  - sku: c123456.122.8
                    amount: 2
                    customizations:
                      my_textfield_1: John
                      my_textfield_2: Doe
                    branding:
                      hangtag_reference: A12345
                      product_packaging_reference: A12345
                      imprint_reference: A12345
                      label_reference: A12345
                  - sku: WV-123456
                    amount: 5
                  - base_product_sku: STTK909C71012
                    amount: 1
                    sales_price_gross: 2199
                    external_reference: EX-123
                    processings:
                      - processingarea_type: front
                        processingposition: chest-center
                        design_url: https://example.com/design.png
                        width: 200
                        height: 40
              documents:
                description: >-
                  Optional document references for the order. To use custom
                  delivery receipts or return labels, please get in touch with
                  your key account manager.
                properties:
                  delivery-receipt:
                    description: Delivery receipt document information
                    properties:
                      media_reference:
                        description: Reference to the delivery receipt media
                        type: string
                        example: AABBCC
                      external_reference:
                        description: External reference for the delivery receipt
                        type: string
                        example: '123'
                    type: object
                  merchant-invoice:
                    description: Merchant invoice document information
                    properties:
                      media_reference:
                        description: Reference to the merchant invoice media
                        type: string
                        example: AABBCC
                      external_reference:
                        description: External reference for the merchant invoice
                        type: string
                        example: '123'
                    type: object
                  return-label:
                    description: Return label document information
                    properties:
                      external_reference:
                        description: External reference for the return label
                        type: string
                        example: ABCDEFG
                      carrier_key:
                        description: Carrier key for the return label
                        type: string
                        example: DHL
                      format:
                        description: >-
                          Format of the return label. 'A4' includes a return
                          sheet with a table for selecting return items and the
                          return label. '10x20' contains only the return label.
                        type: string
                        enum:
                          - a4
                          - 10x20
                        example: 10x20
                    type: object
                  shipping-label:
                    description: Shipping label document information
                    properties:
                      media_reference:
                        description: Reference to the shipping label media
                        type: string
                        example: AABBCC
                      shipping_handle:
                        description: Shipping carrier handle
                        type: string
                        example: DHL_STANDARD
                      tracking_number:
                        description: Tracking number for the shipment
                        type: string
                        example: '00314212423423'
                    type: object
                type: object
              fulfillment_mode_key:
                description: Choose a special fulfilment mode for this order.
                type: string
                example: 24h-express
              billing_method_reference:
                description: Reference of billing method used for this order.
                type: string
                example: F80D66CF
              external_reference:
                description: >-
                  Your internal reference for the order, that will be added to
                  the delivery note.
                type: string
                example: your internal order reference
              check_unique_external_reference:
                description: >-
                  Ensures that the provided external reference is unique within
                  the account.
                type: boolean
                example: true
            type: object
      responses:
        '201':
          description: Success, order has been created
          schema:
            $ref: '#/definitions/Order'
        '401':
          description: Unauthorized (no credentials or not eligible for ordering)
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /orders/{order_reference}:
    get:
      tags:
        - Order-API
      summary: Get order
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: parent, children, comments, products,
        warehouseProducts, payments, orderStatusEntries, shipping, packins
      parameters:
        - name: order_reference
          in: path
          description: The unique reference identifier of the order
          required: true
          type: string
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Order'
        '404':
          description: Order not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-order
    post:
      tags:
        - Order-API
      summary: Update delivery address
      description: >-
        Updates the delivery address of an existing order. Only orders in
        certain states can be edited.

        The order must not be in production.
      parameters:
        - name: order_reference
          in: path
          description: The unique reference identifier of the order
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            required:
              - address
            properties:
              address:
                description: Updated delivery address information
                $ref: '#/definitions/OrderAddress'
            type: object
      responses:
        '204':
          description: Success, order has been updated
        '401':
          description: Unauthorized - Invalid credentials
        '403':
          description: >-
            Forbidden - Order cannot be edited (wrong status or already in
            production)
        '404':
          description: Order not found
        '422':
          description: Validation failed - Invalid address or other data
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /order/{reference}/release-onhold:
    put:
      tags:
        - Order-API
      summary: Release onhold
      description: >-
        Orders with Flag Onhold will not be send to production until flag is
        released.

        Only Orders having completely rendered Images can be released.
      responses:
        '204':
          description: Success, orderProduct customized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /orders/{order_reference}/merchant-invoice:
    post:
      tags:
        - Order-API
      summary: Upload Merchant Invoice
      description: >-
        For orders shipped to non-eu states in some cases a customs invoice
        needs to be added. You can either submit it as an order document with
        the POST /orders call or react to the webhook after order was placed and
        use this endpoint.
      parameters:
        - name: invoice
          in: formData
          description: Merchant invoice file
          type: file
      responses:
        '201':
          description: Success, merchant invoice has been uploaded
        '401':
          description: Unauthorized (no credentials or not eligible for ordering)
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /order/{reference}/set-onhold:
    put:
      tags:
        - Order-API
      summary: Set onhold
      description: >-
        Orders with Flag Onhold will not be send to production until flag is
        released.

        Orders can be set to onhold until they are pushed to production
      responses:
        '204':
          description: Success, orderProduct customized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /integration/{integrationreference}/{integrationOrderId}/reference:
    get:
      tags:
        - Order-API
      summary: Get OrderReference
      description: >-
        Get shirtigo order reference for given integrationId and integration
        orderId
      responses:
        '204':
          description: Success, orderProduct customized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /orders/predict-price:
    post:
      tags:
        - Order-API
      summary: Calculate price
      description: >-
        Calculate the full price (incl. shipping and taxes) for the selected
        order candidate.

        This can be done *before* ordering. The parameters are the same as to
        the "Create Order" endpoint.
      parameters:
        - name: body
          in: body
          required: true
          schema:
            required:
              - delivery
              - products
            properties:
              delivery:
                description: >-
                  Calculate price


                  Calculate the full price (incl. shipping and taxes) for the
                  selected order candidate.

                  This can be done *before* ordering. The parameters are the
                  same as to the "Create Order" endpoint.
                $ref: '#/definitions/OrderAddress'
              sender:
                description: >-
                  Calculate price


                  Calculate the full price (incl. shipping and taxes) for the
                  selected order candidate.

                  This can be done *before* ordering. The parameters are the
                  same as to the "Create Order" endpoint.
                $ref: '#/definitions/OrderAddress'
              gpsr-manufacturer:
                description: >-
                  Calculate price


                  Calculate the full price (incl. shipping and taxes) for the
                  selected order candidate.

                  This can be done *before* ordering. The parameters are the
                  same as to the "Create Order" endpoint.
                $ref: '#/definitions/OrderAddress'
              gpsr-representative:
                description: >-
                  Calculate price


                  Calculate the full price (incl. shipping and taxes) for the
                  selected order candidate.

                  This can be done *before* ordering. The parameters are the
                  same as to the "Create Order" endpoint.
                $ref: '#/definitions/OrderAddress'
              products:
                description: List of products to order
                type: array
                items:
                  properties:
                    sku:
                      description: >-
                        SKU of existing product or warehouse product (starts
                        with 'WV-')
                      type: string
                      example: c123456.122.8
                    base_product_sku:
                      description: SKU of base product variant for custom items
                      type: string
                      example: STTK909C71012
                    amount:
                      description: Amount of this product
                      type: integer
                      example: 2
                    customizations:
                      description: Custom fields for this product
                      properties:
                        my_textfield_1:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: John
                        my_textfield_2:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: Doe
                      type: object
                    branding:
                      description: Branding information for this product
                      properties:
                        hangtag_reference:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: A12345
                        product_packaging_reference:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: A12345
                        imprint_reference:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: A12345
                        label_reference:
                          description: >-
                            Calculate price


                            Calculate the full price (incl. shipping and taxes)
                            for the selected order candidate.

                            This can be done *before* ordering. The parameters
                            are the same as to the "Create Order" endpoint.
                          type: string
                          example: A12345
                      type: object
                    processings:
                      description: List of processings for custom base products
                      type: array
                      items:
                        properties:
                          processingarea_type:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: string
                            example: front
                          processingposition:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: string
                            example: chest-center
                          design_url:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: string
                            example: https://example.com/design.png
                          offset_top:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: integer
                            example: 10
                          offset_center:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: integer
                            example: 4
                          width:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: integer
                            example: 200
                          height:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: integer
                            example: 40
                          force_position:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: boolean
                            example: false
                          mockups:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: array
                            items:
                              type: integer
                              example: 123
                          ignore_validation:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: boolean
                            example: false
                          extract_size_and_position:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: boolean
                            example: false
                          resize_to_processingarea:
                            description: >-
                              Calculate price


                              Calculate the full price (incl. shipping and
                              taxes) for the selected order candidate.

                              This can be done *before* ordering. The parameters
                              are the same as to the "Create Order" endpoint.
                            type: boolean
                            example: false
                        type: object
                  type: object
              fulfillment_mode_key:
                description: Choose a special fulfilment mode for this order
                type: string
                example: 24h-express
              billing_method_reference:
                description: Reference of billing method used for this order
                type: string
                example: F80D66CF
              external_reference:
                description: Your internal reference for the order
                type: string
                example: your internal order reference
              check_unique_external_reference:
                description: >-
                  Ensures that the provided external reference is unique within
                  the account
                type: boolean
                example: true
              documents:
                description: Optional document references for the order
                properties:
                  delivery_receipt:
                    description: >-
                      Calculate price


                      Calculate the full price (incl. shipping and taxes) for
                      the selected order candidate.

                      This can be done *before* ordering. The parameters are the
                      same as to the "Create Order" endpoint.
                    properties:
                      media_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: AABBCC
                      external_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: '123'
                    type: object
                  merchant_invoice:
                    description: >-
                      Calculate price


                      Calculate the full price (incl. shipping and taxes) for
                      the selected order candidate.

                      This can be done *before* ordering. The parameters are the
                      same as to the "Create Order" endpoint.
                    properties:
                      media_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: AABBCC
                      external_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: '123'
                    type: object
                  return_label:
                    description: >-
                      Calculate price


                      Calculate the full price (incl. shipping and taxes) for
                      the selected order candidate.

                      This can be done *before* ordering. The parameters are the
                      same as to the "Create Order" endpoint.
                    properties:
                      external_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: ABCDEFG
                      carrier_key:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: DHL
                    type: object
                  shipping-label:
                    description: >-
                      Calculate price


                      Calculate the full price (incl. shipping and taxes) for
                      the selected order candidate.

                      This can be done *before* ordering. The parameters are the
                      same as to the "Create Order" endpoint.
                    properties:
                      media_reference:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: AABBCC
                      shipping_handle:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: DHL_STANDARD
                      tracking_number:
                        description: >-
                          Calculate price


                          Calculate the full price (incl. shipping and taxes)
                          for the selected order candidate.

                          This can be done *before* ordering. The parameters are
                          the same as to the "Create Order" endpoint.
                        type: string
                        example: '00314212423423'
                    type: object
                type: object
            type: object
      responses:
        '200':
          description: Success, price has been calculated
          schema:
            properties:
              products_net_price:
                description: Net price of all products in the order
                $ref: '#/definitions/Money'
              shipping_net_price:
                description: Net shipping price calculated from products
                $ref: '#/definitions/Money'
              total_net_price:
                description: Total net price (shipping + products)
                $ref: '#/definitions/Money'
              total_gross_price:
                description: Total gross price (shipping + products + taxes)
                $ref: '#/definitions/Money'
              included_tax:
                description: Taxes, calculated from the total net price
                $ref: '#/definitions/Money'
              included_tax_rate:
                description: VAT rate in percent
                type: integer
                example: 19
            type: object
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth: []
  /orders/available-fulfillment-modes:
    post:
      tags:
        - Order-API
      summary: Get available fulfillment modes
      description: >-
        Get a list of all fulfillment modes which can be used for this order.
        This endpoint can be used to collect

        the available options in a checkout process.
      parameters:
        - name: body
          in: body
          required: true
          schema:
            required:
              - delivery
              - products
            properties:
              delivery:
                description: >-
                  Get available fulfillment modes


                  Get a list of all fulfillment modes which can be used for this
                  order. This endpoint can be used to collect

                  the available options in a checkout process.
                $ref: '#/definitions/OrderAddress'
              sender:
                description: >-
                  Get available fulfillment modes


                  Get a list of all fulfillment modes which can be used for this
                  order. This endpoint can be used to collect

                  the available options in a checkout process.
                $ref: '#/definitions/OrderAddress'
              gpsr-manufacturer:
                description: >-
                  Get available fulfillment modes


                  Get a list of all fulfillment modes which can be used for this
                  order. This endpoint can be used to collect

                  the available options in a checkout process.
                $ref: '#/definitions/OrderAddress'
              gpsr-representative:
                description: >-
                  Get available fulfillment modes


                  Get a list of all fulfillment modes which can be used for this
                  order. This endpoint can be used to collect

                  the available options in a checkout process.
                $ref: '#/definitions/OrderAddress'
              products:
                description: List of products to order
                type: array
                items:
                  properties:
                    sku:
                      description: >-
                        SKU of existing product or warehouse product (starts
                        with 'WV-')
                      type: string
                      example: c123456.122.8
                    base_product_sku:
                      description: SKU of base product variant for custom items
                      type: string
                      example: STTK909C71012
                    amount:
                      description: Amount of this product
                      type: integer
                      example: 2
                    customizations:
                      description: Custom fields for this product
                      properties:
                        my_textfield_1:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: John
                        my_textfield_2:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: Doe
                      type: object
                    branding:
                      description: Branding information for this product
                      properties:
                        hangtag_reference:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: A12345
                        product_packaging_reference:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: A12345
                        imprint_reference:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: A12345
                        label_reference:
                          description: >-
                            Get available fulfillment modes


                            Get a list of all fulfillment modes which can be
                            used for this order. This endpoint can be used to
                            collect

                            the available options in a checkout process.
                          type: string
                          example: A12345
                      type: object
                    processings:
                      description: List of processings for custom base products
                      type: array
                      items:
                        properties:
                          processingarea_type:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: string
                            example: front
                          processingposition:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: string
                            example: chest-center
                          design_url:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: string
                            example: https://example.com/design.png
                          offset_top:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: integer
                            example: 10
                          offset_center:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: integer
                            example: 4
                          width:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: integer
                            example: 200
                          height:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: integer
                            example: 40
                          force_position:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: boolean
                            example: false
                          mockups:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: array
                            items:
                              type: integer
                              example: 123
                          ignore_validation:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: boolean
                            example: false
                          extract_size_and_position:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: boolean
                            example: false
                          resize_to_processingarea:
                            description: >-
                              Get available fulfillment modes


                              Get a list of all fulfillment modes which can be
                              used for this order. This endpoint can be used to
                              collect

                              the available options in a checkout process.
                            type: boolean
                            example: false
                        type: object
                  type: object
              fulfillment_mode_key:
                description: Choose a special fulfilment mode for this order
                type: string
                example: 24h-express
              billing_method_reference:
                description: Reference of billing method used for this order
                type: string
                example: F80D66CF
              external_reference:
                description: Your internal reference for the order
                type: string
                example: your internal order reference
              check_unique_external_reference:
                description: >-
                  Ensures that the provided external reference is unique within
                  the account
                type: boolean
                example: true
              documents:
                description: Optional document references for the order
                properties:
                  delivery_receipt:
                    description: >-
                      Get available fulfillment modes


                      Get a list of all fulfillment modes which can be used for
                      this order. This endpoint can be used to collect

                      the available options in a checkout process.
                    properties:
                      media_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: AABBCC
                      external_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: '123'
                    type: object
                  merchant_invoice:
                    description: >-
                      Get available fulfillment modes


                      Get a list of all fulfillment modes which can be used for
                      this order. This endpoint can be used to collect

                      the available options in a checkout process.
                    properties:
                      media_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: AABBCC
                      external_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: '123'
                    type: object
                  return_label:
                    description: >-
                      Get available fulfillment modes


                      Get a list of all fulfillment modes which can be used for
                      this order. This endpoint can be used to collect

                      the available options in a checkout process.
                    properties:
                      external_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: ABCDEFG
                      carrier_key:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: DHL
                    type: object
                  shipping-label:
                    description: >-
                      Get available fulfillment modes


                      Get a list of all fulfillment modes which can be used for
                      this order. This endpoint can be used to collect

                      the available options in a checkout process.
                    properties:
                      media_reference:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: AABBCC
                      shipping_handle:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: DHL_STANDARD
                      tracking_number:
                        description: >-
                          Get available fulfillment modes


                          Get a list of all fulfillment modes which can be used
                          for this order. This endpoint can be used to collect

                          the available options in a checkout process.
                        type: string
                        example: '00314212423423'
                    type: object
                type: object
            type: object
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/FulfillmentMode'
            type: object
        '422':
          description: Validation failed, details in response body
      security:
        - cockpit_apikey: []
        - cockpit_oauth: []
  /orders/{order_reference}/repay:
    post:
      tags:
        - Order-API
      summary: Retry payment
      description: >-
        Set the order payment method to the current user's payment method and
        retry credit card capture.
      parameters:
        - name: order_reference
          in: path
          description: The unique reference identifier of the order
          required: true
          type: string
      responses:
        '204':
          description: Success, order has been paid.
        '400':
          description: Payment failed (either duplicate payment or an error occured).
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /orders/{order_reference}/cancel:
    post:
      tags:
        - Order-API
      summary: Cancel order
      description: Set the order status to canceled.
      parameters:
        - name: order_reference
          in: path
          description: The unique reference identifier of the order
          required: true
          type: string
      responses:
        '204':
          description: Success, order has been canceled.
        '404':
          description: Order not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /orders/{order_reference}/comments:
    post:
      tags:
        - Order-API
      summary: Add order comment
      description: Creates a new comment for a given order. Expects the comment text.
      parameters:
        - name: order_reference
          in: path
          description: The unique reference identifier of the order
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            properties:
              comment:
                description: >-
                  Add order comment


                  Creates a new comment for a given order. Expects the comment
                  text.
                type: string
                example: Customer requested express shipping
            type: object
      responses:
        '200':
          description: Success
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-order
  /orders/{order_reference}/invoice:
    get:
      tags:
        - Order-API
      summary: Retrieve order invoice
      description: Fetches and returns the invoice for a given order as a PDF file.
      parameters:
        - name: order_reference
          in: path
          description: Unique identifier of the order for which to retrieve the invoice
          required: true
          type: string
      responses:
        '200':
          description: Success, invoice is returned as a PDF file.
          schema:
            type: file
        '404':
          description: Order not found or invoice not available.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-order
  /orderproduct/{reference}/customize:
    put:
      tags:
        - Order-API
      summary: Customize OrderProduct
      description: Customize an existing OrderProduct for the currently authenticated user.
      parameters:
        - name: design_reference
          in: query
          description: Reference of design
          type: string
        - name: processingarea_type_id
          in: query
          description: Processingarea to be customized. 1 = front, 2 = back
          type: integer
        - name: width
          in: query
          description: Width of design in millimeter
          type: integer
        - name: offset_top
          in: query
          description: Offset to collar in millimeter
          type: integer
        - name: offset_center
          in: query
          description: x-shift to centerline in millimeter
          type: integer
      responses:
        '204':
          description: Success, orderProduct customized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /orderproduct/{reference}:
    put:
      tags:
        - Order-API
      summary: Update OrderProduct
      description: >-
        Update an existing OrderProducts size or/and color for the currently
        authenticated user.
      parameters:
        - name: color_id
          in: query
          description: ID for new color
          type: integer
        - name: size_id
          in: query
          description: ID for new size
          type: integer
        - name: replacement_requested
          in: query
          description: Use replacement product in case current Product is not available
          type: boolean
      responses:
        '204':
          description: Success, orderProduct updated
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
    delete:
      tags:
        - Order-API
      summary: Delete OrderProduct
      description: Delete an existing OrderProducts for the currently authenticated user.
      responses:
        '204':
          description: Success, orderProduct deleted
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-project
  /user:
    get:
      tags:
        - User-API
      summary: Get user information
      description: >-
        Some of the listed resources are available as optional includes (add to
        the query ?include=firstInclude,secondInclude.subInclude). The available
        includes for this endpoint are: integrations, billingMethod,
        availableBillingMethods
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/User'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
    post:
      tags:
        - User-API
      summary: Update user information
      description: Update (some) fields of the currently authenticated user profile.
      parameters:
        - name: body
          in: body
          schema:
            required:
              - firstname
              - lastname
              - street
              - postcode
              - city
              - country
              - is_business
            properties:
              firstname:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              lastname:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              street:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              postcode:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              city:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              country:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              company_name:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              phone:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: string
              is_business:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: boolean
              fulfillment_mode_key:
                description: >-
                  Update user information


                  Update (some) fields of the currently authenticated user
                  profile.
                type: boolean
            type: object
      responses:
        '204':
          description: User information updated.
        '422':
          description: Validation of inputs failed.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/delivery-receipt-logo:
    post:
      tags:
        - User-API
      summary: Upload delivery receipt logo
      description: >-
        Upload a logo to your user account which is printed on the delivery
        receipt for your customers to increase the branding of your fulfillment


        The file needs to be a png with 900px x 385px (width x height).


        The endpoint returns an empty array with exit code 200.
      consumes:
        - multipart/form-data
      parameters:
        - name: file
          in: formData
          description: Design file
          type: file
      responses:
        '200':
          description: Success, delivery receipt logo was uploaded
        '422':
          description: Error, image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/delivery-receipt-logo/{integration_id}:
    delete:
      tags:
        - User-API
      summary: Delete a delivery receipt logo
      description: The endpoint returns an empty array with exit code 200.
      consumes:
        - multipart/form-data
      parameters:
        - name: integration_id
          in: path
          description: Unique integration identifier
          type: string
      responses:
        '200':
          description: Success, delivery receipt logo was deleted
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/sticker:
    post:
      tags:
        - User-API
      summary: Upload sticker logo
      description: >-
        Upload a sticker to your user account which is printed on packaging for
        your customers to increase the branding of your fulfillment


        The file needs to be a png with 560px x 560px (width x height).


        The endpoint returns an empty array with exit code 200.
      consumes:
        - multipart/form-data
      parameters:
        - name: file
          in: formData
          description: Design file
          type: file
      responses:
        '200':
          description: Success, sticker was uploaded
        '422':
          description: Error, image file does not meet requirements
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/sticker/{integration_id}:
    delete:
      tags:
        - User-API
      summary: Delete sticker logo
      description: The endpoint returns an empty array with exit code 200.
      consumes:
        - multipart/form-data
      parameters:
        - name: integration_id
          in: path
          description: Unique integration identifier
          type: string
      responses:
        '200':
          description: Success, sticker was deleted
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/sender-address:
    post:
      tags:
        - User-API
      summary: Update sender address
      description: Update sender address fields of currently authenticated user.
      parameters:
        - name: body
          in: body
          schema:
            required:
              - sender_firstname
              - sender_lastname
              - sender_street
              - sender_postcode
              - sender_city
              - sender_country
            properties:
              sender_company_name:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 30
              sender_firstname:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 20
              sender_lastname:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 20
              sender_street:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 35
              sender_postcode:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 9
                minLength: 3
              sender_city:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
                maxLength: 30
              sender_country:
                description: |-
                  Update sender address

                  Update sender address fields of currently authenticated user.
                type: string
            type: object
      responses:
        '204':
          description: User information updated.
        '422':
          description: Validation of inputs failed.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/gpsr-address:
    post:
      tags:
        - User-API
      summary: Update GPSR Addresses
      description: >-
        Updates the GPSR manufacturer and representative address fields for the
        authenticated user.
             *     If the country requires a representative address (VAT_TYPE_WORLD), both addresses must be provided.
      parameters:
        - name: body
          in: body
          description: GPSR Address details
          required: true
          schema:
            required:
              - gpsr_manufacturer_company_name
              - gpsr_manufacturer_street
              - gpsr_manufacturer_postcode
              - gpsr_manufacturer_city
              - gpsr_manufacturer_email
              - gpsr_manufacturer_country
            properties:
              gpsr_manufacturer_company_name:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
                maxLength: 30
              gpsr_manufacturer_street:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
                maxLength: 35
              gpsr_manufacturer_postcode:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
              gpsr_manufacturer_city:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
                maxLength: 30
              gpsr_manufacturer_email:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
                format: email
              gpsr_manufacturer_country:
                description: >-
                  Update GPSR Addresses


                  Updates the GPSR manufacturer and representative address
                  fields for the currently authenticated user.

                  This endpoint validates and saves the required address
                  information based on the user's country and VAT rules.
                type: string
              gpsr_representative_company_name:
                description: Required if manufacturer is located outside EU
                type: string
                maxLength: 30
              gpsr_representative_street:
                description: Required if manufacturer is located outside EU
                type: string
                maxLength: 35
              gpsr_representative_postcode:
                description: Required if manufacturer is located outside EU
                type: string
              gpsr_representative_city:
                description: Required if manufacturer is located outside EU
                type: string
                maxLength: 30
              gpsr_representative_email:
                description: Required if manufacturer is located outside EU
                type: string
                format: email
              gpsr_representative_country:
                description: Required if manufacturer is located outside EU
                type: string
            type: object
      responses:
        '204':
          description: GPSR address information updated successfully.
        '422':
          description: Validation failed. Check the input data for errors.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /user/advanced:
    post:
      tags:
        - User-API
      summary: Update user advanced
      description: Update advanced user settings.
      parameters:
        - name: body
          in: body
          schema:
            properties:
              locale:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              accounting_email:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              customs_email:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              receives_mail_order_placed:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              receives_mail_order_shipped:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              use_tracking_de:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              use_tracking_eu:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              use_tracking_world:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              add_delivery_receipt:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              use_custom_product_name:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: boolean
              delivery_receipt_note:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_first_packin_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_second_packin_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_hangtag_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_imprint_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_label_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_product_packaging_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
              default_order_packaging_reference:
                description: |-
                  Update user advanced

                  Update advanced user settings.
                type: string
            type: object
      responses:
        '204':
          description: User information updated.
        '422':
          description: Validation of inputs failed.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /inbound/{reference}:
    get:
      tags:
        - Warehousing-API
      summary: Get InboundShipping
      description: >-
        Return the WarehouseInboundShipment. Some of the listed resources are
        available as optional includes (add to the query
        ?include=firstInclude,secondInclude.subInclude). The available includes
        for this endpoint are: items 
      parameters:
        - name: reference
          in: query
          description: Reference of the Variant to be updated
          type: string
        - name: include
          in: query
          description: >-
            Which linked entities you want to include into the response,
            separated by comma. Available includes are Items
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseInboundShipment'
        '404':
          description: WarehouseInboundShipment not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
    delete:
      tags:
        - Warehousing-API
      summary: Delete InboundShipping
      description: Deletes WarehouseInboundShipment
      parameters:
        - name: reference
          in: query
          description: Reference of the InboundShipment to be deleted
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseInboundShipment'
        '404':
          description: WarehouseInboundShipment not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /verifications:
    get:
      tags:
        - User-API
      summary: Get user verifications
      description: Retrieve all verification records for the currently authenticated user.
      parameters:
        - name: include
          in: query
          description: Comma-separated values to include additional resources
          type: string
      responses:
        '200':
          description: Successful retrieval of user verification data.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /verifications/create:
    post:
      tags:
        - User-API
      summary: Create a new user verification
      description: >-
        Allows the creation of a new verification record for the authenticated
        user.
      parameters:
        - name: body
          in: body
          schema:
            required:
              - type
              - identifier
              - country_iso
            properties:
              type:
                description: >-
                  Create a new user verification


                  Allows the creation of a new verification record for the
                  authenticated user.
                type: string
                enum:
                  - vat
                  - tax
                  - lucid
              identifier:
                description: >-
                  Create a new user verification


                  Allows the creation of a new verification record for the
                  authenticated user.
                type: string
                example: ATU1234567
              country_iso:
                description: >-
                  Create a new user verification


                  Allows the creation of a new verification record for the
                  authenticated user.
                type: string
                example: AT
              fiscal_representation:
                description: >-
                  Create a new user verification


                  Allows the creation of a new verification record for the
                  authenticated user.
                type: string
            type: object
      responses:
        '201':
          description: Verification record created successfully.
        '422':
          description: Validation of inputs failed.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-user
  /webhooks:
    get:
      tags:
        - Webhook-API
      summary: List webhooks
      description: >-
        Returns a list of webhooks with pagination and optional filtering. The
        following events are available: Order (.created, .updated, .shipped,
        .canceled, .clarification), Design (.created, .updated,
        .rendering-failed, .deleted), Product (.created, .updated, .deleted),
        OrderProductItem.updated, OrderWarehouseProductItem.updated
      operationId: indexUserWebhooks
      produces:
        - application/json
      parameters:
        - name: items
          in: query
          description: Number of items per page
          required: false
          type: integer
          default: 10
        - name: sort_col
          in: query
          description: Column to sort by
          required: false
          type: string
          default: created_at
        - name: sort_dir
          in: query
          description: Sort direction (asc or desc)
          required: false
          type: string
          default: asc
        - name: resource
          in: query
          description: Filter by resource. See WebhookTypes objects for available options.
          required: false
          type: string
        - name: action
          in: query
          description: Filter by action. See WebhookTypes objects for available options.
          required: false
          type: string
        - name: is_active
          in: query
          description: Filter by active status
          required: false
          type: boolean
        - name: include
          in: query
          description: >-
            Comma-separated list of related resources to include in the
            response. Available resources: type, calls
          required: false
          type: string
        - name: loaded_webhook_calls
          in: query
          description: Number of loaded webhook calls when the calls include is used
          required: false
          type: integer
          default: 10
      responses:
        '200':
          description: Successful operation
          schema:
            properties:
              data:
                type: array
                items:
                  $ref: '#/definitions/UserWebhook'
              meta:
                properties:
                  pagination:
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-webhook
    post:
      tags:
        - Webhook-API
      summary: Create a new webhook
      description: Create a new webhook based on the provided data
      operationId: createUserWebhook
      consumes:
        - multipart/form-data
      produces:
        - application/json
      parameters:
        - name: resource
          in: formData
          description: >-
            Resource for which this webhook should be registered. Required
            together with action if no types array is passed.
          required: false
          type: string
        - name: action
          in: formData
          description: >-
            Action for which this webhook should be registered. Required
            together with resource if no types array is passed.
          required: false
          type: string
        - name: types
          in: formData
          description: >-
            Array of webhook type keys as an alternative to providing resource
            and action.
          required: false
          type: array
          items:
            type: string
        - name: url
          in: formData
          description: URL
          required: true
          type: string
        - name: secret
          in: formData
          description: >-
            Secret used to hash the payload with the SHA256 algorithm to create
            the signature in webhook calls.
          required: false
          type: string
        - name: signature_header
          in: formData
          description: >-
            Header parameter named used to identify the webhook signature in the
            request.
          required: false
          type: string
        - name: is_active
          in: formData
          description: Indicates if the webhook is active.
          required: false
          type: boolean
      responses:
        '201':
          description: webhook created successfully
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/Webhook'
              meta:
                description: Meta information
                properties:
                  pagination:
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
        '400':
          description: Invalid input data
        '401':
          description: Unauthorized
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-webhook
  /webhooks/{id}:
    get:
      tags:
        - Webhook-API
      summary: Get a single webhook by ID
      description: Retrieve a single webhook by its reference ID.
      parameters:
        - name: id
          in: path
          description: The reference ID of the webhook.
          required: true
          type: string
        - name: include
          in: query
          description: >-
            Comma-separated list of related resources to include in the
            response. Available resources: type, calls
          required: false
          type: string
      responses:
        '200':
          description: webhook retrieved successfully.
          schema:
            $ref: '#/definitions/Webhook'
        '401':
          description: Unauthorized.
        '404':
          description: webhook not found.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-webhook
    put:
      tags:
        - Webhook-API
      summary: Update a webhook
      description: Updates the specified webhook with the provided information.
      operationId: updateUserWebhook
      produces:
        - application/json
      parameters:
        - name: id
          in: path
          description: webhook reference
          required: true
          type: string
        - name: url
          in: formData
          description: URL for the webhook.
          required: true
          type: string
          format: url
        - name: secret
          in: formData
          description: >-
            Secret for the webhook, used to hash the payload with the SHA-256
            algorithm to create the signature in webhook calls.
          required: false
          type: string
        - name: signature_header
          in: formData
          description: >-
            Signature header for the webhook, used to identify the webhook
            signature in the request header.
          required: false
          type: string
        - name: is_active
          in: formData
          description: Whether the webhook is active.
          required: false
          type: boolean
      responses:
        '200':
          description: Successful operation
          schema:
            $ref: '#/definitions/UserWebhook'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/ApiError'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ApiError'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/ApiError'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-webhook
    delete:
      tags:
        - Webhook-API
      summary: Delete a webhook
      description: Delete a webhook by its reference.
      operationId: deleteUserWebhook
      produces:
        - application/json
      parameters:
        - name: id
          in: path
          description: Reference of the webhook to delete.
          required: true
          type: string
      responses:
        '204':
          description: webhook successfully deleted.
        '401':
          description: Unauthorized. Access token is missing or invalid.
        '403':
          description: Forbidden. The user does not have the necessary permissions.
        '404':
          description: Not Found. The specified webhook could not be found.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-webhook
  /webhooks/:
    put:
      tags:
        - Webhook-API
      summary: Bulk Update webhook with same URL
      description: >-
        Updates the specified webhooks for the given URL with the provided
        information.
      operationId: updateUserWebhook
      produces:
        - application/json
      parameters:
        - name: url
          in: formData
          description: URL for the webhooks.
          required: true
          type: string
          format: url
        - name: secret
          in: formData
          description: >-
            Secret for the webhooks, used to hash the payload with the SHA-256
            algorithm to create the signature in webhook calls.
          required: false
          type: string
        - name: signature_header
          in: formData
          description: >-
            Signature header for the webhooks, used to identify the webhook
            signature in the request header.
          required: false
          type: string
        - name: is_active
          in: formData
          description: Whether the updated webhooks are active.
          required: false
          type: boolean
        - name: drop_unlisted
          in: formData
          description: >-
            Remove all webhooks for this URL, which are not part of the listed
            types.
          required: false
          type: boolean
      responses:
        '200':
          description: Successful operation
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/UserWebhook'
            type: object
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/ApiError'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ApiError'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/ApiError'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-webhook
  /webhooks/{id}/test:
    post:
      tags:
        - Webhook-API
      summary: Test a webook
      description: Test a webhook for a given resource.
      operationId: testUserWebhook
      produces:
        - application/json
      parameters:
        - name: id
          in: path
          description: Reference of the webhook to delete.
          required: true
          type: string
        - name: resource_id
          in: formData
          description: Reference of the resource used to create thhe test webhook.
          required: true
          type: string
      responses:
        '204':
          description: test webhook successfully send.
        '401':
          description: Unauthorized. Access token is missing or invalid.
        '403':
          description: Forbidden. The user does not have the necessary permissions.
        '404':
          description: Not Found. The specified webhook could not be found.
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - write-webhook
  /webhook-types:
    get:
      tags:
        - Webhook-API
      summary: Get all User Webhook Types
      description: Retrieve a list of all available User Webhook Types
      operationId: getTypes
      produces:
        - application/json
      responses:
        '200':
          description: A list of User Webhook Types
          schema:
            type: array
            items:
              $ref: '#/definitions/WebhookType'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-webhook
  /warehousing/inventory:
    get:
      tags:
        - Warehousing-API
      summary: Get WarehouseProductVariant
      description: >-
        Returns the list of WarehouseProductVariants assiciated with the
        particular User.
      parameters:
        - name: include
          in: query
          description: >-
            Which linked entities you want to include into the response,
            separated by comma. Available includes are Image and Product
          type: string
          default: Image
        - name: search
          in: query
          description: Search in in variants by the name
          type: string
          default: ''
        - name: page
          in: query
          description: Current page
          type: integer
          default: 1
        - name: items
          in: query
          description: Number of items per page
          type: integer
          default: 12
        - name: sort
          in: query
          description: >-
            Column used to sort the results. You can sort by: name, reference,
            created_at, updated_at
          type: string
          default: name
        - name: order
          in: query
          description: Direction for sorting
          type: string
          default: ASC
        - name: type
          in: query
          description: >-
            Type of the products to query. Options are warehouse, return and
            all.
          type: string
          default: warehouse
      responses:
        '200':
          description: Success
          schema:
            properties:
              data:
                description: Returned items
                type: array
                items:
                  $ref: '#/definitions/WarehouseProductVariant'
              meta:
                description: Meta information
                properties:
                  pagination:
                    description: Get WarehouseProductVariant
                    $ref: '#/definitions/Pagination'
                type: object
            type: object
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /warehousing/products/{reference}:
    get:
      tags:
        - Warehousing-API
      summary: Get WarehouseProduct
      description: >-
        Return the WarehouseProduct. Some of the listed resources are available
        as optional includes (add to the query
        ?include=firstInclude,secondInclude.subInclude). The available includes
        for this endpoint are: variant, variants 
      parameters:
        - name: reference
          in: query
          description: Reference of the Variant to be updated
          type: string
        - name: include
          in: query
          description: >-
            Which linked entities you want to include into the response,
            separated by comma. Available includes are Variant and Variants
          type: string
          default: Variants
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProduct'
        '404':
          description: WarehouseProduct not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
    put:
      tags:
        - Warehousing-API
      summary: Update WarehouseProduct
      description: Updates WarehouseProduct with default Variant and associated Variants
      parameters:
        - name: reference
          in: query
          description: Reference of the WarehouseProduct to be updated
          type: string
        - name: body
          in: body
          schema:
            properties:
              name:
                description: Project name
                type: string
                example: My cool warehouse product
              description:
                description: Project description
                type: string
                example: My cool warehouse product's description
              size:
                description: Size of the default product's variant
                type: string
                example: S
              color:
                description: Color of the default product's variant
                type: string
                example: white
              hs_code:
                description: HS Code of default product's variant
                type: string
                example: DE123456
              country_of_origin:
                description: Country of Origin of default product's variant
                type: string
                example: DE
              item_value:
                description: Item value in cents of default product's variant
                type: integer
                example: '52000'
              net_sales_price:
                description: Net sales price in cents of default product's variant
                type: integer
                example: '1250'
              depth_cm:
                description: Depth in cm of default product's variant
                type: integer
                example: '30'
              width_cm:
                description: Width in cm of default product's variant
                type: integer
                example: '30'
              height_cm:
                description: Height in cm of default product's variant
                type: integer
                example: '30'
              weight_gram:
                description: Weight in grams of default product's variant
                type: integer
                example: '30'
              needs_box_shipping:
                description: >-
                  Indicates whether the default product's variant should be
                  shipping in a box
                type: boolean
                example: 'false'
              min_stock_quantity:
                description: Minimal stock quantity of default product's variant
                type: integer
                example: '100'
              image:
                description: WarehouseProduct variant image
                type: object
                $ref: '#/definitions/Media'
              variants:
                description: >-
                  The array of variants of the WarehouseProduct, excluding
                  default one
                type: array
                items:
                  $ref: '#/definitions/WarehouseProductVariant'
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProduct'
        '404':
          description: WarehouseProduct not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /warehousing/products:
    post:
      tags:
        - Warehousing-API
      summary: Create WarehouseProduct
      description: Creates WarehouseProduct with default Variant and associated Variants
      parameters:
        - name: body
          in: body
          schema:
            properties:
              name:
                description: Project name
                type: string
                example: My cool warehouse product
              description:
                description: Project description
                type: string
                example: My cool warehouse product's description
              size:
                description: Size of the default product's variant
                type: string
                example: S
              color:
                description: Color of the default product's variant
                type: string
                example: white
              hs_code:
                description: HS Code of default product's variant
                type: string
                example: DE123456
              country_of_origin:
                description: Country of Origin of default product's variant
                type: string
                example: DE
              item_value:
                description: Item value in cents of default product's variant
                type: integer
                example: '52000'
              net_sales_price:
                description: Net sales price in cents of default product's variant
                type: integer
                example: '1250'
              depth_cm:
                description: Depth in cm of default product's variant
                type: integer
                example: '30'
              width_cm:
                description: Width in cm of default product's variant
                type: integer
                example: '30'
              height_cm:
                description: Height in cm of default product's variant
                type: integer
                example: '30'
              weight_gram:
                description: Weight in grams of default product's variant
                type: integer
                example: '30'
              needs_box_shipping:
                description: >-
                  Indicates whether the default product's variant should be
                  shipping in a box
                type: boolean
                example: 'false'
              min_stock_quantity:
                description: Minimal stock quantity of default product's variant
                type: integer
                example: '100'
              image:
                description: WarehouseProduct image
                type: object
                $ref: '#/definitions/Media'
              variants:
                description: >-
                  The array of variants of the WarehouseProduct, excluding
                  default one
                type: array
                items:
                  $ref: '#/definitions/WarehouseProductVariant'
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProduct'
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /warehousing/products/{product_reference}/variants/{reference}:
    put:
      tags:
        - Warehousing-API
      summary: Update WarehouseProductVariant
      description: Updates WarehouseProductVariant
      parameters:
        - name: product_reference
          in: path
          description: >-
            Reference of the WarehouseProduct to which the updated Variant
            belongs to
          type: string
        - name: reference
          in: path
          description: Reference of the Variant to be updated
          type: string
        - name: body
          in: body
          schema:
            properties:
              size:
                description: Size of the product's variant
                type: string
                example: S
              color:
                description: Color of the product's variant
                type: string
                example: white
              hs_code:
                description: HS Code of product's variant
                type: string
                example: DE123456
              country_of_origin:
                description: Country of Origin of product's variant
                type: string
                example: DE
              item_value:
                description: Item value in cents of product's variant
                type: integer
                example: '52000'
              net_sales_price:
                description: Net sales price in cents of product's variant
                type: integer
                example: '1250'
              depth_cm:
                description: Depth in cm of product's variant
                type: integer
                example: '30'
              width_cm:
                description: Width in cm of product's variant
                type: integer
                example: '30'
              height_cm:
                description: Height in cm of product's variant
                type: integer
                example: '30'
              weight_gram:
                description: Weight in grams of product's variant
                type: integer
                example: '30'
              needs_box_shipping:
                description: >-
                  Indicates whether the product's variant should be shipping in
                  a box
                type: boolean
                example: 'false'
              min_stock_quantity:
                description: Minimal stock quantity of product's variant
                type: integer
                example: '100'
              image:
                description: WarehouseProduct variant image
                type: object
                $ref: '#/definitions/Media'
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProductVariant'
        '404':
          description: WarehouseProductVariant not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
    delete:
      tags:
        - Warehousing-API
      summary: Delete WarehouseProductVariant
      description: Deletes WarehouseProductVariant
      parameters:
        - name: product_reference
          in: query
          description: >-
            Reference of the WarehouseProduct to which the deleted Variant
            belongs to
          type: string
        - name: reference
          in: query
          description: Reference of the Variant to be deleted
          type: string
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProductVariant'
        '404':
          description: WarehouseProductVariant not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /warehousing/variants/{reference}:
    put:
      tags:
        - Warehousing-API
      summary: Update WarehouseProductVariant by Reference
      description: Updates WarehouseProductVariant
      parameters:
        - name: reference
          in: path
          description: Reference of the Variant to be updated
          required: true
          type: string
          x-example: WV-HGE123446
        - name: body
          in: body
          schema:
            properties:
              name:
                description: Project name
                type: string
                example: My cool warehouse product variant
              description:
                description: Project description
                type: string
                example: My cool warehouse product variant's description
              size:
                description: Size of the product's variant
                type: string
                example: S
              color:
                description: Color of the product's variant
                type: string
                example: white
              hs_code:
                description: HS Code of product's variant
                type: string
                example: DE123456
              country_of_origin:
                description: Country of Origin of product's variant
                type: string
                example: DE
              item_value:
                description: Item value in cents of product's variant
                type: integer
                example: '52000'
              net_sales_price:
                description: Net sales price in cents of product's variant
                type: integer
                example: '1250'
              depth_cm:
                description: Depth in cm of product's variant
                type: integer
                example: '30'
              width_cm:
                description: Width in cm of product's variant
                type: integer
                example: '30'
              height_cm:
                description: Height in cm of product's variant
                type: integer
                example: '30'
              weight_gram:
                description: Weight in grams of product's variant
                type: integer
                example: '30'
              needs_box_shipping:
                description: >-
                  Indicates whether the product's variant should be shipping in
                  a box
                type: boolean
                example: 'false'
              min_stock_quantity:
                description: Minimal stock quantity of product's variant
                type: integer
                example: '100'
              image:
                description: WarehouseProduct variant image
                type: object
                $ref: '#/definitions/Media'
            type: object
      responses:
        '200':
          description: Success
          schema:
            type: object
            $ref: '#/definitions/WarehouseProductVariant'
        '404':
          description: WarehouseProductVariant not found
      security:
        - cockpit_apikey: []
        - cockpit_oauth:
            - read-user
  /oauth/authorize:
    get:
      tags:
        - oauth
      summary: Obtain authorization from user
      description: >-
        As part of the OAuth2 authorization-code flow, users have to be directed
        to this endpoint, with the query parameters filled in. If applicable,
        the user will then be prompted to log into their account and confirm
        that their data may be used by a third party client. For security
        reasons, the redirect URL has to be registered beforehand, the client ID
        and client secrets are also issued during registration.
      parameters:
        - name: response_type
          in: query
          description: Response type
          required: true
          type: string
          enum:
            - code
        - name: redirect_url
          in: query
          description: Redirect URL. Must match registered redirect URL.
          required: true
          type: string
        - name: client_id
          in: query
          description: Client ID (from registration)
          required: true
          type: string
        - name: client_secret
          in: query
          description: Client Secret (from registration)
          required: true
          type: string
      responses:
        '200':
          description: Success, body contains prompt for confirmation.
        '302':
          description: >-
            Success, authorization has been previously granted, redirect to
            callback.
        '401':
          description: Error, invalid client (client ID and/or secret is invalid).
  /oauth/token:
    post:
      tags:
        - oauth
      summary: Request access token
      description: >-
        This endpoint constitutes the second step of the OAuth2 authorization
        flow, obtaining an access token from the access code. This is done on
        the client side and does not require any user interaction.
      parameters:
        - name: grant_type
          in: formData
          description: Grant type
          required: true
          type: string
          enum:
            - authorization_code
        - name: code
          in: formData
          description: Code received in callback from /oauth/authorize
          required: true
          type: string
        - name: client_id
          in: formData
          description: Client ID (from registration)
          required: true
          type: string
        - name: client_secret
          in: formData
          description: Client Secret (from registration)
          required: true
          type: string
      responses:
        '200':
          description: Success, token issued.
          schema:
            properties:
              access_token:
                description: Valid access token.
                type: string
                example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjVjZj...
              refresh_token:
                description: >-
                  Refresh token, can be used to obtain a new access token after
                  expiration.
                type: string
                example: tYI1iHjH7lGBLlBi+VD6uYYCn3pZo8Do/BSmcgzwTOuZ+f7v/z...
              expires_in:
                description: Remaining lifetime of the access token (in seconds).
                type: integer
                example: 31536000
              token_type:
                description: Token type, will be 'Bearer'.
                type: string
                example: Bearer
            type: object
        '400':
          description: Error.
          schema:
            $ref: '#/definitions/OAuthServerException'
        '401':
          description: Error, invalid client (client ID or secret are wrong).
          schema:
            $ref: '#/definitions/OAuthServerException'
definitions:
  UserWebhook:
    properties:
      id:
        type: integer
        example: 1
      url:
        type: string
        example: https://example.com/webhook
      is_active:
        type: boolean
        example: true
      secret:
        type: string
        example: webhookSecret123
      signature_header:
        type: string
        example: X-Webhook-Signature
      created_at:
        type: string
        format: date-time
      updated_at:
        type: string
        format: date-time
    type: object
  ApiError:
    properties:
      message:
        type: string
        example: Error message description
      errors:
        type: object
        example:
          field:
            - The field is invalid
      status_code:
        type: integer
        example: 400
    type: object
  Payment:
    properties:
      id:
        description: Unique transaction identifier
        type: string
        example: d1364568-4b15-4706-89f1-2452efe1261d
      status:
        description: Payment type
        type: string
        example: invoice
      status_title:
        description: Payment description
        type: string
        example: Erstattung
      payment_reference:
        description: Payment reference
        type: string
        example: Kreditkarte
      order:
        description: Order
        $ref: '#/definitions/Order'
      net_amount:
        description: Net price
        $ref: '#/definitions/Money'
      gross_amount:
        description: Gross price
        $ref: '#/definitions/Money'
      vat_amount:
        description: VAT amount
        type: integer
        $ref: '#/definitions/Money'
      vat_rate:
        description: VAT rate in percent
        type: float
        example: 19
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  CampaignIntegrationProduct:
    properties:
      integration_id:
        description: The cockpit internal id of the used user integration
        type: integer
        example: 111
      integration_product_id:
        description: The identifier used by the integration application
        type: string
        example: '9286211826'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  ProjectPrint:
    properties:
      area:
        description: Processing site
        type: string
        example: front
      position:
        description: Processing position
        type: string
        example: center
      method:
        description: Processing method
        type: string
        example: print
      height:
        description: Design height in millimeters
        type: integer
        example: 300
      width:
        description: Design width in millimeters
        type: integer
        example: 200
      offset_top:
        description: Vertical offset from top in millimeters
        type: integer
        example: 50
      offset_center:
        description: Horizontal offset from center in millimeters
        type: integer
        example: 0
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
      design:
        $ref: '#/definitions/Design'
    type: object
  CampaignProductColor:
    properties:
      id:
        description: Numerical identifier
        type: integer
        example: 123
      color:
        description: Color name
        type: string
        example: Black
      color_hex:
        description: Hexadecimal RGB color value
        type: string
        example: '#000000'
      is_colored:
        description: Is this a non trivial (b/w) color?
        type: boolean
        example: true
      sales_price:
        description: The price ypu specifiet for the product
        $ref: '#/definitions/Money'
      sort_position:
        description: Numerical index used for sorting
        type: integer
        example: 1
      sizes:
        description: Available sizes
        type: array
        items:
          properties:
            id:
              description: Numerical identifier
              type: integer
              example: 67
            size:
              description: Size abbreviation
              type: string
              example: XL
            is_onlocalstock:
              description: Is the item available on local stock?
              type: boolean
              example: true
            is_available:
              description: Is item available in general, e.g. from supplier stock?
              type: boolean
              example: true
            sort_position:
              description: Numerical index used for sorting
              type: integer
              example: 1
            shirtigo_price:
              description: Your price for the product
              $ref: '#/definitions/Money'
          type: object
    type: object
  CampaignProductIntegrationSync:
    properties:
      integration_name:
        description: Name of the integration application
        type: string
        example: shopify
      integration_id:
        description: The cockpit internal id of the used user integration
        type: integer
        example: 111
      integration_product_id:
        description: The identifier used by the integration application
        type: string
        example: '9286211826'
      is_syncing:
        description: Is the product available?
        type: boolean
        example: true
      is_successful:
        description: Has the product been rendered?
        type: boolean
        example: true
      in_queue:
        description: Is the current sync-process still in queue?
        type: boolean
        example: true
      error:
        description: Error message
        type: string
        example: Invalid or missing auth.
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  CampaignProduct:
    properties:
      id:
        description: Numerical identifier
        type: integer
        example: 123
      project:
        description: Project reference
        type: string
        example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      project_name:
        description: Project name
        type: string
        example: Projekt 123
      name:
        description: Product name
        type: string
        example: Base Product Name XY
      custom_name:
        description: User defined product name
        type: string
        example: My cool product
      description:
        description: Short description in HTML format
        type: string
      tags:
        description: List of tags for this design
        type: array
        items:
          type: string
      price:
        description: Net price
        $ref: '#/definitions/Money'
      shirtigo_price:
        description: Your purchase price for the first color/size variant
        $ref: '#/definitions/Money'
      seedshirt_price:
        description: >-
          Your purchase price for the product when selling the product via a
          seedshirt instant store
        $ref: '#/definitions/Money'
      sort_position:
        description: Numerical identifier
        type: integer
        example: 0
      colors:
        description: List of available colors
        type: array
        items:
          $ref: '#/definitions/CampaignProductColor'
      is_available:
        description: Is the product available?
        type: boolean
        example: true
      is_rendered:
        description: Has the product been rendered?
        type: boolean
        example: true
      has_express:
        description: Is the product available for express processing?
        type: boolean
        example: false
      images:
        description: Product images
        type: array
        items:
          $ref: '#/definitions/UtilProductImage'
      brandings:
        description: Product branding options
        type: array
        items:
          $ref: '#/definitions/UserPackin'
      base_product:
        description: Base product
        $ref: '#/definitions/Product'
      active_integration_syncs:
        description: List of currently active synchronizations with integrations
        type: array
        items:
          $ref: '#/definitions/CampaignProductIntegrationSync'
      integration_sync_log:
        description: History of synchronizations with integrations for this product
        type: array
        items:
          $ref: '#/definitions/CampaignProductIntegrationSync'
      integration_products:
        description: >-
          List of integration products (e.g. products in shopify) for this
          products
        type: array
        items:
          $ref: '#/definitions/CampaignIntegrationProduct'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  UtilProductImage:
    properties:
      id:
        description: id of the image object
        type: integer
        example: '1222'
      color:
        description: Color name
        type: string
        example: Red
      area:
        description: Processing area name
        type: string
        example: front
      urls:
        description: Product name
        properties:
          small:
            description: URL for small preview image.
            type: string
            example: http://www.example.com/my-orders/small.png
          large:
            description: URL for large preview image.
            type: string
            example: http://www.example.com/my-orders/large.png
        type: object
    type: object
  Project:
    required:
      - reference
      - name
      - type
    properties:
      reference:
        description: Unique identifier of this project
        type: string
        example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      name:
        description: Project name
        type: string
        example: My cool project
      type:
        description: Type
        type: string
        example: ondemand
      products_count:
        description: Number of products
        type: integer
        readOnly: true
        example: 3
      is_published:
        description: Has the project been published?
        type: boolean
        readOnly: true
        example: true
      is_syncing:
        description: >-
          Array with a list of all CampaignProductIntegrationSyncs of this
          campaign and its status, if it is currently syncing.
        type: array
        items:
          type: array
          items:
            type: boolean
          example:
            '12': true
        readOnly: true
      is_queueing:
        description: >-
          Array with a list of all CampaignProductIntegrationSyncs of this
          campaign and its status, if it is currently in queue.
        type: array
        items:
          type: array
          items:
            type: boolean
          example:
            '12': true
        readOnly: true
      status:
        description: Project status
        type: string
        example: Finalisiert
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
      created_at:
        description: Timestamp of initial creation
        type: string
        example: '2017-01-01 12:34:56'
      processings:
        description: Processings associated with this project
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProjectPrint'
        type: object
    type: object
  ProjectWithProducts:
    allOf:
      - $ref: '#/definitions/Project'
      - properties:
          products:
            description: Products associated with this Project
            type: array
            items:
              $ref: '#/definitions/Product'
  Coupon:
    properties:
      coupon_code:
        description: The identifier on the promo coupon
        type: string
        example: Shirt-coupon-XYZ
      coupon_type:
        description: The type of the coupon (discount, free shipping, etc.)
        type: string
        example: discount
      discount_type:
        description: The type of discount, either percentage or euro
        type: string
        example: euro
      discount_percent:
        description: >-
          The granted discount in percent on the cart value without handling and
          shipping (filled for discount type percentage)
        type: integer
        example: 10
      discount_netto:
        description: >-
          The granted discount without sales taxes in euro cent (filled for
          discount type euro)
        $ref: '#/definitions/Money'
      discount_brutto:
        description: >-
          The gross granted discount in euro cent (filled for discount type
          euro)
        type: integer
        $ref: '#/definitions/Money'
      is_active:
        description: Activation status of coupon
        type: boolean
        example: true
      min_order_value:
        description: >-
          Minimal total value in euro cents for an order to make this coupon
          applicable
        $ref: '#/definitions/Money'
      is_expired:
        description: Flag to indicate if the coupon is expired
        type: boolean
        example: false
      expiration_date:
        description: Timestamp for the validity of the coupon code
        type: string
        example: '2017-01-01 12:34:56'
      n_activations:
        description: Number of usages for this coupon
        type: integer
        example: '1'
      remaining_activations:
        description: Number of remaining usages for this coupon
        type: integer
        example: '1'
      new_user_only:
        description: Flag to indicate if the coupon is for new users only
        type: integer
        example: '1'
      rate_limit_exceeded:
        description: Flag to indicate if the coupon was used too often in the last hour.
        type: integer
        example: '1'
      has_orders:
        description: Flag to indicate if orders for user exist.
        type: integer
        example: '1'
    type: object
  Country:
    properties:
      iso:
        description: Two-letter identifier according to ISO 3166-1
        type: string
        example: DE
      name:
        description: Country name
        type: string
        example: Germany
    type: object
  Design:
    properties:
      reference:
        description: Unique identifier of this design
        type: string
        example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
      filename:
        description: Design file name
        type: string
        example: ABCDE
      name:
        description: Design Name
        type: string
        example: My cool design
      width:
        description: Width of the design file in pixels
        type: integer
        example: 5000
      height:
        description: Height of the design file in pixels
        type: integer
        example: 3000
      filetype:
        description: Extension of the design file name
        type: string
        example: png
      tags:
        description: List of tags for this design
        type: array
        items:
          type: string
        example: summer-collection
      processingmethod_key:
        description: Indicates for which processingmethod the design can be used
        type: string
        example: dtg
      colors:
        description: Total number of colors in the color palette
        type: integer
        example: 5
      palette:
        description: List of hex-codes of representative colors
        type: array
        items:
          type: string
        example:
          - A20061
          - FFBC42
          - 1C838A
          - '021618'
          - A3AAAB
      complementary_color:
        description: Complementary color
        type: string
        example: ''
      preview:
        description: URL to preview image
        type: string
        example: https://example.com/product_prev.png
      original_file:
        description: URL to full resolution image
        type: string
        example: https://example.com/product.png
      is_processed:
        description: Has the design been rendered?
        type: boolean
        example: true
      is_dark:
        description: Is this a design with dark colors?
        type: boolean
        example: true
      is_editable:
        description: Indicates if design colors can be updated
        type: boolean
        example: true
      is_ai_generated:
        description: Indicated if design has been generated by AI
        type: boolean
        example: true
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  FulfillmentMode:
    properties:
      key:
        description: A unique key to identify a fulfillment mode
        type: string
        example: 24h-express
      name:
        description: The name of the fulfillment mode
        type: string
        example: 24h Express
      description:
        description: A description of the fulfillment conditions for this mode
        type: string
        example: The order is produced and handed to the carrier within 24h
      is_per_order:
        description: >-
          Flag to indicate if the surcharge for this mode is per order or per
          item
        type: boolean
        example: 'true'
      price_net:
        description: >-
          The net price, either per order or per item, dependent in the
          is_per_order_setting
        type: string
        $ref: '#/definitions/Money'
      fulfillment_days:
        description: The number of fulfillment days for this fulfillment mode
        type: string
        example: '1'
      sort_weight:
        description: Country name
        type: string
        example: '22'
    type: object
  GeneratedMedia:
    required:
      - reference
      - prompt
      - user_prompt
      - created_at
    properties:
      reference:
        type: string
      prompt:
        type: string
      user_prompt:
        type: string
      created_at:
        type: string
        format: date-time
      variations:
        type: array
        items:
          $ref: '#/definitions/GeneratedMediaVariation'
      mediaStyle:
        type: object
        $ref: '#/definitions/MediaStyle'
  GeneratedMediaVariation:
    required:
      - reference
      - url
      - resolution
      - status
      - response_prompt
      - has_design
    properties:
      reference:
        type: string
      url:
        type: string
        format: uri
      resolution:
        type: string
      status:
        type: string
        enum:
          - pending
          - processing
          - done
          - failed
      response_prompt:
        type: string
      has_design:
        type: boolean
      safety_system_fail:
        type: boolean
  MediaStyle:
    required:
      - id
      - name
      - description
      - key
      - url
    properties:
      id:
        type: integer
      name:
        type: string
      description:
        type: string
      key:
        type: string
      url:
        type: string
  Media:
    properties:
      reference:
        description: Reference
        type: string
        example: A12345
      url:
        description: Media url
        type: string
        example: https://example.com/image.png
      filename:
        description: The basename of the file
        type: string
        example: image.png
  RenderingTaskImage:
    required:
      - reference
      - mockup_id
      - base_product_id
      - base_product_color_id
      - base_product_variants
      - mockup_url
      - resolution
      - extension
      - status
      - error_message
    properties:
      reference:
        description: Unique identifier of the image
        type: string
      mockup_id:
        description: Identifier for the associated mockup
        type: integer
      base_product_id:
        description: Identifier for the base product
        type: integer
      base_product_color_id:
        description: Identifier for the color of the base product
        type: integer
      base_product_variants:
        description: Serialized array of variants for the base product
        type: string
      mockup_url:
        description: >-
          URL to the mockup image if available; null if not available. Please
          note that rendered mockups will be deleted after 24 hours.
        type: string
      resolution:
        description: Resolution of the generated image in pixels
        type: integer
      extension:
        description: File extension type of the generated image
        type: string
      status:
        description: Current status of the image, e.g., 'pending', 'done', 'failed'
        type: string
      error_message:
        description: Error message if the status is 'failed', otherwise null
        type: string
  RenderingTask:
    required:
      - reference
      - external_reference
      - status
      - created_at
    properties:
      reference:
        description: Unique identifier of the task
        type: string
      external_reference:
        description: An external reference to link back to client-side identifiers
        type: string
      status:
        description: >-
          Overall status of the task, derived from the status of its images. Can
          be 'pending', 'completed', or 'failed' based on the states of the
          images.
        type: string
      created_at:
        description: Timestamp of when the generated media was created
        type: string
        format: date-time
      RenderingTaskImage:
        description: List of images associated with the task
        type: array
        items:
          $ref: '#/definitions/GeneratedMediaVariation'
  NewsPost:
    required:
      - id
      - name
      - description
      - key
    properties:
      id:
        type: integer
      name:
        type: string
      description:
        type: string
      key:
        type: string
  OrderComment:
    properties:
      id:
        description: ID of the order comment
        type: integer
      comment:
        description: Text of the order comment
        type: string
        example: Great communication with customer
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  OrderPackin:
    properties:
      id:
        description: Packin id
        type: integer
      amount:
        description: Number of items
        type: integer
        example: 1
      name:
        description: Packin name
        type: string
        example: Greeting card
      type:
        description: Packin type (hangtag or packin)
        type: string
        example: hangtag
      net_total_price:
        description: Total price (net_unit_price*amount)
        example: 75
        $ref: '#/definitions/Money'
      net_unit_price:
        description: Net unit price
        $ref: '#/definitions/Money'
    type: object
  OrderPayment:
    properties:
      id:
        description: Unique transaction identifier
        type: string
        example: d1364568-4b15-4706-89f1-2452efe1261d
      status:
        description: Payment status
        type: string
        example: paid
      status_details:
        description: Payment error description (if there is any)
        type: string
        example: An error occured.
      type:
        description: Payment type
        type: string
        example: creditcard
      net_amount:
        description: Net price
        type: integer
        $ref: '#/definitions/Money'
      gross_amount:
        description: Gross price
        type: integer
        $ref: '#/definitions/Money'
      vat_amount:
        description: VAT amount
        type: integer
        $ref: '#/definitions/Money'
      vat_rate:
        description: VAT rate in percent
        type: float
        example: 19
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  OrderProductItem:
    properties:
      reference:
        description: Product reference
        type: string
        example: OP-12345678
      preview_image_url:
        description: Preview image url
        type: string
        example: url
      status_name:
        description: Item Status name
        type: string
        example: Print (DTG)
      status_key:
        description: Color name
        type: string
        example: dtg
      status_description:
        description: Status description
        type: string
        example: Product is being printed.
      status_group:
        description: Status group
        type: string
        example: processing
      availability:
        description: availability
        type: string
        example: stock
    type: object
  OrderProduct:
    properties:
      id:
        description: Product id
        type: integer
      amount:
        description: Number of items
        type: integer
        example: 1
      name:
        description: Product name
        type: string
        example: Base product XY
      color:
        description: Color name
        type: string
        example: Black
      size:
        description: Size name
        type: string
        example: XL
      images:
        description: Available image URLs
        type: array
        items:
          $ref: '#/definitions/UtilProductImage'
      net_total_price:
        description: Total price (net_unit_price*amount)
        example: 1375
        $ref: '#/definitions/Money'
      net_unit_price:
        description: Net unit price
        $ref: '#/definitions/Money'
      campaign_reference:
        description: Reference of the campaign
        type: string
        example: F7S33M2
      campaign_name:
        description: Name of the campaign
        type: string
        example: Example Project
      campaign_product_id:
        description: ID of the campaign product
        type: int
        example: '123'
    type: object
  OrderRelation:
    properties:
      reference:
        description: Unique identifier of this order
        type: string
        example: ABCDXY1
      net_price:
        description: Total net price of this order
        $ref: '#/definitions/Money'
      gross_price:
        description: Total gross price of this order
        $ref: '#/definitions/Money'
      vat_rate:
        description: VAT rate in percent
        type: float
        example: 19
      vat_amount:
        description: VAT amount
        $ref: '#/definitions/Money'
      status:
        description: Human readable order status
        type: string
        example: Bestellung offen
      status_key:
        description: Number of products
        type: string
        example: ''
      total_items:
        description: Total number of items in the order
        type: integer
        example: 5
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  OrderShipping:
    properties:
      type:
        description: Shipping type
        type: string
        example: delivery
      cost:
        description: Shipping price
        type: string
        $ref: '#/definitions/Money'
      is_shipped:
        description: Has the order been shipped yet?
        type: boolean
        example: false
      country_code:
        description: Two letter country code
        type: string
        example: DE
      tracking_code:
        description: Carrier tracking code
        type: string
      tracking_url:
        description: Carrier tracking URL
        type: string
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  OrderStatusEntry:
    properties:
      key:
        description: Order status key
        type: string
      status:
        description: Human readable status
        type: string
      description:
        description: Verbose status description
        type: integer
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  Order:
    properties:
      reference:
        description: Unique identifier of this order
        type: string
        example: ABCDXY1
      net_price:
        description: Total net price of this order
        $ref: '#/definitions/Money'
      gross_price:
        description: Total gross price of this order
        $ref: '#/definitions/Money'
      vat_rate:
        description: VAT rate in percent
        type: float
        example: 19
      vat_amount:
        description: VAT amount
        $ref: '#/definitions/Money'
      status:
        description: Human readable order status
        type: string
        example: Bestellung offen
      status_key:
        description: Number of products
        type: string
        example: ''
      invoice_reference:
        description: Invoice reference
        type: string
      fulfillment:
        description: Fulfillment details or `false` if no details are available
        properties:
          reference: {}
          status: {}
          type: {}
        type: object
      delivery:
        description: Delivery address
        $ref: '#/definitions/OrderAddress'
      sender:
        description: Sender address
        $ref: '#/definitions/OrderAddress'
      bill:
        description: Billing address
        $ref: '#/definitions/OrderAddress'
      gpsr-manufacturer:
        description: Manufacturer's address for GPSR compliance
        $ref: '#/definitions/OrderAddress'
      gpsr-representative:
        description: Representative's address for GPSR compliance
        $ref: '#/definitions/OrderAddress'
      total_items:
        description: Total number of items in the order
        type: integer
        example: 5
      add_delivery_receipt:
        description: Indicates if delivery receipt is added to order
        type: boolean
        example: true
      delivery_receipt_logo_reference:
        description: Media reference for the logo added to delivery_receipt
        type: string
        example: A456HJ
      delivery_receipt_note:
        description: Custom note on delivery receipt
        type: string
        example: Use voucher XYZ and get a 10% discount for your next order
      use_custom_product_name:
        description: Use custom product name on delivery receipt
        type: boolean
        example: true
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
      products:
        description: Array of products in this order
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/OrderProduct'
        type: object
      packins:
        description: Array of packins and hangtags in this order
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/OrderPackin'
        type: object
      payments:
        description: Array of payments associated with this order
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/OrderPayment'
        type: object
      orderStatusEntries:
        description: Array of status messages associated with this order
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/OrderStatusEntry'
        type: object
      shipping:
        description: >-
          Details on the shipping method, status and tracking (only present if
          order is being or has been shipped)
        $ref: '#/definitions/OrderShipping'
      documents:
        description: Document references for the order
        properties:
          delivery-receipt:
            properties:
              media_reference:
                type: string
                example: AABBCC
              external_reference:
                type: string
                example: '123'
            type: object
          merchant-invoice:
            properties:
              media_reference:
                type: string
                example: AABBCC
              external_reference:
                type: string
                example: '123'
            type: object
          return-label:
            properties:
              external_reference:
                type: string
                example: ABCDEFG
              carrier_key:
                type: string
                example: DHL
            type: object
        type: object
    type: object
  OrderAddress:
    description: Address
    properties:
      type:
        description: >-
          address type (delivery, sender, bill, gpsr-manufacturer,
          gpsr-representative
        type: string
        example: delivery
      title:
        description: (Academic) title
        type: string
        example: Dr.
      company:
        description: Company name
        type: string
        example: Shirtigo GmbH
      firstname:
        description: First name
        type: string
        example: Max
      lastname:
        description: Last name
        type: string
        example: Mustermann
      care_of:
        description: Care of (c/o)
        type: string
        example: Gift for Mrs. Doe
      street:
        description: Street and number
        type: string
        example: Musterstraße 12
      postcode:
        description: ZIP/area code
        type: string
        example: '12345'
      city:
        description: City
        type: string
        example: Köln
      country:
        description: >-
          A country iso-code (ISO 3166-1 alpha2) as listed in the
          /delivery-countries endpoint
        type: string
        example: DE
      email:
        description: Contact email
        type: string
        example: info@company.com
    type: object
  OrderWarehouseProductItem:
    properties:
      reference:
        description: Product Reference
        type: string
      sku:
        description: SKU of ordered warehouseProductVariant
        type: string
        example: WP-12345
    type: object
  OrderWarehouseProduct:
    properties:
      reference:
        description: Product Reference
        type: string
      amount:
        description: Number of items
        type: integer
        example: 1
      name:
        description: Product name
        type: string
        example: Base product XY
      sku:
        description: SKU of ordered warehouseProductVariant
        type: string
        example: WP-12345
      net_total_price:
        description: Total price (net_unit_price*amount)
        example: 1375
        $ref: '#/definitions/Money'
      net_unit_price:
        description: Net unit price
        $ref: '#/definitions/Money'
    type: object
  Plan:
    properties:
      key:
        description: A unique key to identify a plan
        type: string
        example: warehousing
      name:
        description: The name of the plan
        type: string
        example: Warehousing
      description:
        description: The description of the plan
        type: string
        example: Warehousing
      type:
        description: The type of the plan
        type: string
        example: warehousing
      invoice_period:
        description: number of month in interval
        type: integer
        example: '1'
      invoice_interval:
        description: runtime of plan
        type: string
        example: month
      price_net:
        description: The net price for the plan and the given priode
        type: integer
        $ref: '#/definitions/Money'
      sort_weight:
        description: sort weight of the plan
        type: integer
        example: '1'
    type: object
  ProductColor:
    properties:
      id:
        description: Numerical identifier
        type: integer
        example: 123
      color:
        description: Color name
        type: string
        example: Black
      color_hex:
        description: Hexadecimal RGB color value
        type: string
        example: '#000000'
      is_colored:
        description: Is this a non trivial (b/w) color?
        type: boolean
        example: true
      is_heathered:
        description: Indicates if the fabric is heathered
        type: boolean
        example: false
      sizes:
        description: Available sizes
        type: array
        items:
          properties:
            id:
              description: Numerical identifier
              type: integer
              example: 67
            size:
              description: Size abbreviation
              type: string
              example: XL
            base_product_sku:
              description: >-
                Our unique SKU for this base product variant. Recommended for
                use.
              type: string
              example: STTU169_Black_XXL
            brand_product_sku:
              description: >-
                Brand-specific SKU for this base product variant. Can also be
                used as base_product_sku in POST /orders.
              type: string
              example: STTU169C0022X
            is_onlocalstock:
              description: Is the item available on local stock?
              type: boolean
              example: true
            is_discontinued:
              description: Indicates if the product is discontinued
              type: boolean
              example: false
            sort_position:
              description: Numerical index used for sorting
              type: integer
              example: 1
            weight_gram:
              description: Weight in gram
              type: integer
              example: 10
            stock:
              description: Stock information for the product variant
              properties:
                local_stock:
                  description: Amount available in local stock
                  type: integer
                  example: 100
                wholesale_stock:
                  description: Amount available in wholesale stock
                  type: integer
                  example: 200
                wholesale_delivery_duration:
                  description: Estimated delivery duration from wholesaler in days
                  type: integer
                  example: 7
                inbound_date:
                  description: Expected date when out-of-stock items will be replenished
                  type: string
                  format: date
                  example: '2024-02-15'
                replacement_stock:
                  description: Information about replacement stock if applicable
                  type: object
              type: object
            print_dimensions:
              description: Print dimensions for the product
              type: array
              items:
                properties:
                  processingarea_id:
                    description: Numerical identifier for the print area
                    type: integer
                    example: 1
                  processingarea_name:
                    description: Name of the print area (e.g., 'front', 'back')
                    type: string
                  width_in_mm:
                    description: Width of the print area in millimeters
                    type: integer
                    example: 300
                  height_in_mm:
                    description: Height of the print area in millimeters
                    type: integer
                    example: 400
                  distance_printarea_top_to_collar_mm:
                    description: >-
                      Distance from the top of the processingarea to the collar
                      in millimeters
                    type: integer
                    example: 50
                type: object
          type: object
    type: object
  ProductDimensions:
    properties:
      size:
        description: Product size name
        type: string
        example: XL
      width:
        description: Width in mm
        type: integer
        example: 200
      height:
        description: Height in mm
        type: integer
        example: 500
    type: object
  ProductManufacturer:
    properties:
      id:
        description: Numerical identifier
        type: integer
        example: 123
      name:
        description: Manufacturer name
        type: string
        example: Musterfirma
    type: object
  ProductProcessingArea:
    properties:
      position_id:
        description: Numerical identifier
        type: integer
        example: 1
      position_name:
        description: Name of the printarea
        type: string
        example: front
      is_printable:
        description: Flag to indicate if this area is available for printing.
        type: boolean
        example: true
      width_in_mm:
        description: Width of the printarea in millimeters
        type: integer
        example: 100
      height_in_mm:
        description: Height of the printarea in millimeters
        type: integer
        example: 100
      width:
        description: Width of the printarea in pixels
        type: integer
        example: 2000
      height:
        description: Height of the printarea in pixels
        type: integer
        example: 2000
      processing_method:
        description: >-
          The processingmehtod for this area definition, e.g. 'dtg' or
          'embroidery'.
        type: string
        example: dtg
      offset_x_center_mm:
        description: Offset in mm for the area in x compared to a centered position
        type: integer
        example: 0
      offset_y_collar_mm:
        description: Offset in mm between the collar and the top of the area
        type: integer
        example: 20
      printable_area_margin_from_top:
        description: Distance between top and processable area top
        type: integer
        example: 0
    type: object
  ProductProcessingPosition:
    properties:
      name:
        description: Name of the position (translated)
        type: string
        example: Chest Left
      key:
        description: Unique key to identify the position
        type: string
        example: chest-left
      description:
        description: Description of the position
        type: string
        example: A printarea placed on the left side of the chest
      rel_position_x:
        description: >-
          Relative horizontal position within the processing area in percent,
          where 0 represents the center of the coordinate system.
        type: int
        example: 0
      rel_position_y:
        description: Relative vertical position within the processing area in percent
        type: int
        example: 15
      width_in_mm:
        description: Width of the position in millimeters
        type: integer
        example: 100
      height_in_mm:
        description: Height of the position in millimeters
        type: integer
        example: 100
    type: object
  ProductImage:
    properties:
      id:
        type: integer
        example: 1
      url:
        type: string
        example: https://example.com/images/product.jpg
      type:
        type: string
        example: main
      sort_weight:
        type: integer
        example: 1
      created_at:
        type: string
        format: date-time
      updated_at:
        type: string
        format: date-time
    type: object
  ProductPrice:
    properties:
      amount:
        type: integer
        example: 2999
      currency:
        type: string
        example: EUR
      formatted:
        type: string
        example: 29,99 €
    type: object
  Product:
    properties:
      id:
        description: Numeric identifier of this product
        type: integer
        example: 1
      name:
        description: Product name
        type: string
        example: Base product XY
      original_name:
        description: brand product name
        type: string
        example: T-Shirt
      shipping_category:
        description: Numeric identifier of the shipping category
        type: integer
        example: 1
      category_id:
        description: Numerical identifier of the product category
        type: integer
        example: 5
      category:
        description: Name of the product category
        type: string
        example: Unisex-Shirts
      short_description:
        description: Brief description of the product
        type: string
      description:
        description: Detailed description of the product
        type: string
      one_line_description:
        description: One-line description of the product
        type: string
      designer_note:
        description: special notes for designing the product
        type: string
      material:
        description: Material composition of the product
        type: string
      hs_code:
        description: Harmonized System code for international shipping
        type: string
      thumbnail_image:
        description: URL of the product's thumbnail image
        type: string
      sizechart_image:
        description: URL of the product size chart image
        type: string
      is_active:
        description: Indicates whether the product is active and available for orders
        type: boolean
      product_category_id:
        description: Numeric identifier for the specific product category
        type: integer
      can_use_hangtag:
        description: Indicates whether the product can use a hangtag
        type: boolean
      can_use_imprint:
        description: Indicates whether the product can use an imprint
        type: boolean
      can_use_sewing_label:
        description: Indicates whether the product can use a sewing label
        type: boolean
      can_be_warehoused:
        description: Indicates whether the product can be warehoused
        type: boolean
      is_organic:
        description: Indicates whether the product is made of organic materials
        type: boolean
      recommended_sales_price:
        description: Recommended sales price for the product
        type: object
      manufacturer:
        description: Manufacturer information
        $ref: '#/definitions/ProductManufacturer'
      images:
        description: Product images
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProductImage'
        type: object
      colors:
        description: Color information
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProductColor'
        type: object
      processing_areas:
        description: Available processing areas
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProductProcessingArea'
        type: object
      price:
        description: Pricing information
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProductPrice'
        type: object
      sales_price:
        description: Pricing information on sales
        properties:
          data:
            description: Returned Items
            type: array
            items:
              $ref: '#/definitions/ProductPrice'
        type: object
    type: object
  ProvisionalProduct:
    properties:
      name:
        description: Product name
        type: string
        example: Base product XY
      description:
        description: Short description
        type: string
      colors:
        description: List of available colors
        type: array
        items:
          $ref: '#/definitions/ProductColor'
      price:
        description: Net price
        $ref: '#/definitions/Money'
      base_product:
        description: Base product
        $ref: '#/definitions/Product'
    type: object
  ShipmentStatus:
    properties:
      key:
        description: ShipmentStatus key
        type: string
        example: preparation
      status_group:
        description: ShipmentStatus status group
        type: string
        example: PRE_TRANSIT
      name:
        description: Name of the ShipmentStatus
        type: string
        example: Preparation
      description:
        description: Description of the ShipmentStatus
        type: string
        example: The package is in preparation
    type: object
  UserBillingMethodReferenceAccount:
    properties:
      bank_owner:
        description: Billing method reference
        type: ABC123
      bank_iban:
        description: The amount in cents used to auto recharge wallet
        type: integer
        example: '10000'
      bank_bic:
        description: billing method type
        type: string
        example: stripe, prepayment, wallet
    type: object
  UserBillingMethod:
    properties:
      reference:
        description: Billing method reference
        type: ABC123
      recharge_amount:
        description: The amount in cents used to auto recharge wallet
        type: integer
        example: '10000'
      gateway:
        description: billing method type
        type: string
        example: stripe, prepayment, wallet
      last4:
        description: last 4 digits of credit card
        type: string
        example: '4242'
      provider:
        description: credit card provider
        type: string
        example: visa
      exp_month:
        description: month credit card will expire
        type: string
        example: '12'
      exp_year:
        description: year credit card will expire
        type: string
        example: '2023'
      is_active:
        description: >-
          indicates if billing method is the primary billing method for the user
          account
        type: boolean
        example: true
    type: object
  UserCreditBalance:
    properties:
      credit_balance:
        description: The credit balance of the user
        type: integer
        example: 100
      image_generation:
        description: Details about the user's daily image generation limit
        properties:
          daily_limit:
            type: integer
            example: 10
          remaining:
            type: integer
            example: 5
        type: object
      image_optimizations:
        description: Details about the user's daily image optimization limit
        properties:
          daily_limit:
            type: integer
            example: 10
          remaining:
            type: integer
            example: 5
        type: object
    type: object
  UserInboundShippingItemStatus:
    properties:
      id:
        description: Status Id
        type: integer
        example: 8
      name:
        description: Status name
        type: string
        example: Failed
      description:
        description: Status description
        type: string
        example: Failed
      key:
        description: Status key
        type: string
        example: failed
      group:
        description: Status group
        type: string
        example: done
    type: object
  RejectionType:
    properties:
      id:
        type: integer
        example: 1
      name:
        type: string
        example: Wrong Size
      description:
        type: string
        example: The item size does not match the specification
      created_at:
        type: string
        format: date-time
      updated_at:
        type: string
        format: date-time
    type: object
  UserInboundShippingItem:
    properties:
      reference:
        description: Inbound shipping item reference
        type: string
        example: FC0459
      amount:
        description: Amount of the inbound shipping item
        type: integer
        example: 10
      should_store:
        description: Flag indicating if the item should be stored
        type: boolean
        example: true
      created_at:
        description: Timestamp when the inbound shipping item was created
        type: string
        example: '2023-03-25T12:34:56'
      updated_at:
        description: Timestamp when the inbound shipping item was last updated
        type: string
        example: '2023-03-25T12:34:56'
      warehouse_product_variant:
        description: warehouse_product_variant
        $ref: '#/definitions/WarehouseProductVariant'
      user_packin:
        description: user_packin
        $ref: '#/definitions/UserPackin'
      order_product_item:
        description: order_product_item
        $ref: '#/definitions/OrderProductItem'
      order_warehouse_product_item:
        description: order_warehouse_product_item
        $ref: '#/definitions/OrderWarehouseProductItem'
      rejection_type:
        description: rejection_type
        $ref: '#/definitions/RejectionType'
      status:
        description: status
        $ref: '#/definitions/UserInboundShippingItemStatus'
    type: object
  UserInboundShippingReason:
    properties:
      key:
        description: Reason key
        type: string
        example: no-pickup
      group:
        description: Reason group
        type: string
        example: shipping-issue
      name:
        description: Localized name
        type: string
        example: Package not picked up
      description:
        description: Localized description
        type: string
        example: The order was not collected by the customer.
      user_action_required:
        description: Indicates if user action is required
        type: boolean
        example: true
      item_check_required:
        description: Indicates if item check is required
        type: boolean
        example: false
      max_open_days:
        description: Maximum number of open days
        type: integer
        example: 14
    type: object
  UserInboundShippingRejectionType:
    properties:
      id:
        description: Rejection type Id
        type: integer
        example: 1
      key:
        description: Rejection type key
        type: string
        example: print-damaged
      name:
        description: Rejection type name
        type: string
        example: print damaged
      description:
        description: Rejection type description
        type: string
        example: The print on this product is damaged.
    type: object
  UserInboundShippingSolution:
    required:
      - id
      - key
      - name
      - description
      - created_at
      - updated_at
    properties:
      id:
        type: integer
        format: int64
        example: 1
      key:
        type: string
        example: ship-again
      name:
        type: string
        example: Ship again
      description:
        type: string
        example: >-
          The order is send to the customer again and the shipping costs are
          charged to you.
      has_shipping_fee:
        type: boolean
        example: true
      can_use_solution:
        type: boolean
        example: true
      created_at:
        type: string
        format: date-time
        example: '2023-03-25T12:34:56.789Z'
      updated_at:
        type: string
        format: date-time
        example: '2023-03-25T12:34:56.789Z'
      reasons:
        description: List of reasons
        type: array
        items:
          $ref: '#/definitions/UserInboundShippingReason'
  UserInboundShippingStatus:
    properties:
      id:
        description: User inbound shipping status id
        type: integer
        example: '1'
      name:
        description: User inbound shipping statuss name
        type: string
        example: Return received
      key:
        description: User inbound shipping status key
        type: string
        example: pending
      description:
        description: User inbound shipping status description
        type: string
        example: Return received
    type: object
  UserInboundShipping:
    properties:
      reference:
        description: Inbound shipping reference
        type: string
        example: ABC123
      name:
        description: Inbound shipping name
        type: string
        example: Sample shipment
      carrier:
        description: Carrier for the inbound shipping
        type: string
        example: DHL
      tracking_number:
        description: Tracking number for the inbound shipping
        type: string
        example: '1234567890'
      url:
        description: URL for the inbound shipping details PDF
        type: string
        example: https://example.com/inbound/shipment
      count:
        description: Total number of items in the inbound shipping
        type: integer
        example: 25
      created_at:
        description: Timestamp when the inbound shipping was created
        type: string
        example: '2023-03-25T12:34:56'
      updated_at:
        description: Timestamp when the inbound shipping was last updated
        type: string
        example: '2023-03-25T12:34:56'
      deleted_at:
        description: Timestamp when the inbound shipping was deleted (null if not deleted)
        type: string
        example: '2023-03-25T12:34:56'
      shipmentStatus:
        description: shipmentStatus
        $ref: '#/definitions/ShipmentStatus'
      userInboundShippingStatus:
        description: userInboundShippingStatus
        $ref: '#/definitions/UserInboundShippingStatus'
      reason:
        description: reason
        $ref: '#/definitions/UserInboundShippingReason'
      solution:
        description: solution
        $ref: '#/definitions/UserInboundShippingSolution'
      items:
        description: List of items
        type: array
        items:
          $ref: '#/definitions/UserInboundShippingItem'
      order:
        description: order
        $ref: '#/definitions/Order'
      billingOrder:
        description: billingOrder
        $ref: '#/definitions/Order'
    type: object
  UserIntegration:
    properties:
      id:
        description: The internal cockpit id of the used user integration
        type: integer
        example: 111
      app:
        description: Name of the integration application
        type: string
        example: shopify
      name:
        description: The name of the integration, i.e. the shop URL
        type: string
        example: my-cool-shirtstore.myshopify.com
      reference:
        description: Reference of the integration
        type: uuid
        example: 154e3f69-c081-4e20-8706-d1c7477e15c8
      expires_in:
        description: Date of expire
        type: string
        example: '2018-01-01 12:34:56'
      sales_channel:
        description: Integration sales channel
        type: string
        example: Storefront
      image_type:
        description: Type of image transfered to external shop
        type: string
        example: png
      image_quality:
        description: Quality of image transfered to external shop
        type: string
        example: high
      fulfillment_mode_key:
        description: The fulfillment mode used when orders are placed via this integration
        type: string
        example: 24h-express
      is_token_revoked:
        description: Flag if the access token has been revoked and needs to be updated
        type: boolean
        example: true
      is_pull_orders:
        description: Flag if manually reimporting of orders is enabled.
        type: boolean
        example: true
      is_auto_pull_orders:
        description: Flag if automatically reimporting of orders is enabled.
        type: boolean
        example: 'true'
      default_first_packin_reference:
        description: >-
          Default first packin added to orders received via this intergrations
          (optional)
        type: string
        example: ABC123
      default_second_packin_reference:
        description: >-
          Default second packin added to orders received via this intergrations
          (optional)
        type: string
        example: ABC123
      default_hangtag_reference:
        description: >-
          Default hangtag added to all textil products of orders received via
          this intergrations (optional)
        type: string
        example: ABC123
      default_imprint_reference:
        description: >-
          Default imprinted added to all tagless textil products of orders
          received via this intergrations (optional)
        type: string
        example: ABC123
      default_label_reference:
        description: >-
          Default label added to all textil products of orders received via this
          intergrations (optional)
        type: string
        example: ABC123
      default_product_packaging_reference:
        description: >-
          Default packaging used for all textil products of orders received via
          this intergrations (optional)
        type: string
        example: ABC123
      default_order_packaging_reference:
        description: >-
          Default packging used for all orders received via this intergrations
          (optional)
        type: string
        example: ABC123
      default_sticker_reference:
        description: >-
          Default sticker applied to packaging of orders received via this
          intergrations (optional)
        type: string
        example: ABC123
      add_delivery_receipt:
        description: >-
          Indicates if delivery receipt is added to orders received via this
          intergrations
        type: boolean
        example: true
      delivery_receipt_note:
        description: Custom note on delivery receipt
        type: string
        example: Use voucher XYZ and get a 10% discount for your next order
      default_delivery_receipt_logo_reference:
        description: >-
          Default delivery receipt logo used for orders received via this
          intergrations (optional)
        type: string
        example: ABC123
      delivery_receipt_logo:
        description: >-
          Url to custom logo added to delivery slip for orders received via this
          intergrations (optional)
        type: string
        example: https://example.com/custom_logo.png
      use_custom_product_name:
        description: Indicates if custom product name is used on delivery receipt
        type: boolean
        example: true
      sticker_logo:
        description: >-
          Url to custom sticker logo for orders received via this intergrations
          (optional)
        type: string
        example: https://example.com/custom_logo.png
      is_auto_onhold:
        description: >-
          Indicates if order is automatically pushed to production (default =
          false)
        type: boolean
        example: true
      is_refresh_token_expired:
        description: >-
          Indicates if the (OAuth-)refresh-token is expired. Currently only used
          for ebay. (default = false)
        type: boolean
        example: false
    type: object
  UserPackin:
    properties:
      reference:
        description: Packin reference
        type: ABC123
      name:
        description: Packin name
        type: string
        example: Greetings card
      type:
        description: Packin type (packin or hangtag)
        type: string
        example: packin
      position:
        description: Position of Label
        type: string
        example: seam-left
      size_id:
        description: Product size ID for which imprint will be applied
        type: integer
        example: '3'
      color_ids:
        description: Array of product color ids for which imprint or label will be applied
        type: string
        example: '[''147'',''157'']'
      weight_gram:
        description: Weight of one single packin in gram
        type: integer
        example: '10'
      width_mm:
        description: Width of the packin in millimeter
        type: integer
        example: '100'
      height_mm:
        description: Height of the packin in millimeter
        type: integer
        example: '100'
      initial_inventory:
        description: Initial stock level of packin
        type: integer
        example: '1000'
      inventory:
        description: Actual stock level of packin
        type: integer
        example: '1000'
      preview_path:
        description: Path to packin preview
        type: string
        example: https://s3.amazon.com/preview.png
      is_active:
        description: >-
          Packins receives status is_active, when article is checked and
          warehoused
        type: boolean
        example: true
      stocking_costs:
        description: Daily costs for stocking packin
        example: 50
        $ref: '#/definitions/Money'
      item_costs:
        description: Costs for adding one packin to an order
        example: 75
        $ref: '#/definitions/Money'
    type: object
  UserPayment:
    properties:
      reference:
        description: payment reference
        type: string
        example: UPD7FF829231CB
      type:
        description: payment type
        type: string
        example: paypal
      status:
        description: payment status
        type: string
        example: paid
      amount:
        description: payment amount
        type: integer
        example: '10000'
      billing_method_reference:
        description: reference of the associated billing method
        type: string
        example: E60C9604
      is_auto_recharged:
        description: indicates if payment was trigger by user or via auto-recharge
        type: boolean
        example: '1'
    type: object
  UserReturnPortal:
    properties:
      name:
        description: The name of the return portal
        type: string
        example: Best Shirts
      reference:
        description: reference of the return portal
        type: string
        example: ''
      subdomain:
        description: subdomain of the return portal
        type: string
        example: bestshirts
      url:
        description: url of the return portal
        type: string
        example: bestshirts.myreturns.online
      legal_imprint_url:
        description: url to the shop imprint
        type: string
        example: https://www.bestshirts.xyz/imprint
      legal_privacy_url:
        description: url to the privacy policy
        type: string
        example: https://www.bestshirts.xyz/privacy
      is_active:
        description: indicates if return portal is active
        type: boolean
        example: true
      accept_complaints_only:
        description: indicates if return portal accepts complaints only and no withdrawals
        type: boolean
        example: true
      accept_personalized_items:
        description: indicates if customer can return personalized items
        type: boolean
        example: true
      allow_refund_for_personalized_items:
        description: >-
          indicates if customer can select refund as solution of persoanlized
          items or just a exchange
        type: boolean
        example: true
      allow_exchange:
        description: >-
          Indicates whether a product can be exchanged for another colour or
          size
        type: boolean
        example: true
      withdrawal_period_days:
        description: Indicates how many days after shipment a product can be returned
        type: integer
        example: 14
      complaint_period_days:
        description: Indicates how many days after shipment a product can be complained
        type: integer
        example: 60
      mobile_logo_url:
        description: url of the logo of the mobile viewport
        type: string
        example: https://www.bestshirts.xyz/mobile_logo.png
      desktop_logo_url:
        description: url of the logo of the desktop viewport
        type: string
        example: https://www.bestshirts.xyz/desktop_logo.png
      primary_color_hex:
        description: hex code for the primary css color
        type: string
        example: '000000'
      secondary_color_hex:
        description: hex code for the secondary css color
        type: string
        example: FF0000
    type: object
  UserShop:
    properties:
      id:
        description: The internal cockpit id of the one-click-shop
        type: integer
        example: 111
      app:
        description: Name of the integration application
        type: string
        example: one-click-shop
      name:
        description: The name of the one-click-shop
        type: string
        example: My One-Click-Shop
      url:
        description: The unique url identifier of the one-click-shop
        type: string
        example: my-shop
      seedshirt_url:
        description: The public url of the one-click-shop
        type: string
        example: www.seedshirt.de/shop/my-shop
      seedshirt_account_url:
        description: The url of the one-click-shop admin interface
        type: string
        example: www.seedshirt.de/account/shops/my-shop
    type: object
  UserSubscription:
    properties:
      name:
        description: The name of the plan
        type: string
        example: Warehousing
      valid_from:
        description: The date from which is subscription is valid
        type: string
        example: '2022-09-01 08:00:00'
      valid_until:
        description: The date until which the subscription is valid
        type: string
        example: '2022-09-01 08:00:00'
      is_canceled:
        description: indicates if subscription was canceled
        type: boolean
        example: '1'
      is_renewed:
        description: indicates if subscription was renewed
        type: boolean
        example: '1'
      is_valid:
        description: indicates if subscription is still valid
        type: boolean
        example: '1'
    type: object
  UserGroup:
    properties:
      id:
        description: Numerical group identifier
        type: integer
        example: 1
      type:
        description: Group name
        type: string
        example: premium
      cockpit_discount:
        description: Discount in percent
        type: integer
        example: 20
      quantity:
        description: Required number of sold products
        type: integer
        example: 1000
      created_at:
        description: Timestamp of creation
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
    type: object
  User:
    required:
      - firstname
      - lastname
      - street
      - postcode
      - city
      - country
    properties:
      email:
        description: Email address
        type: string
        example: mustermann@example.com
      firstname:
        description: First name(s)
        type: string
        example: Max
      lastname:
        description: Last name
        type: string
        example: Mustermann
      display_name:
        description: Display name, e.g. first + last name
        type: string
        example: Max Mustermann
      user_group:
        $ref: '#/definitions/UserGroup'
      is_business:
        description: Is a business customer
        type: boolean
        example: true
      title:
        description: (Academical) title
        type: string
        example: Dr.
      company_name:
        description: Company name
        type: string
        example: Shirtigo GmbH
      street:
        description: Street and number, used for billing
        type: string
        example: Musterstraße 12
      postcode:
        description: ZIP code, used for billing
        type: string
        example: '12345'
      city:
        description: City, used for billing
        type: string
        example: Köln
      country:
        description: Country, used for billing
        type: string
        example: Deutschland
      phone:
        description: Phone nubmer
        type: string
        example: '004930123456'
      sender_title:
        type: string
      sender_company_name:
        type: string
      sender_firstname:
        type: string
      sender_lastname:
        type: string
      sender_street:
        type: string
      sender_postcode:
        type: string
      sender_city:
        type: string
      sender_state:
        type: string
      sender_country:
        type: string
      sender_type:
        type: string
        enum:
          - full
          - company
          - legacy
      fulfillment_key:
        description: The desired fulfillment mode
        type: string
        example: 24h-express
      is_billing_valid:
        description: Have billing options been filled out?
        type: boolean
        example: true
      has_orders:
        description: Does user have orders?
        type: boolean
        example: true
      integration_count:
        description: Number of active integrations
        type: number
        example: 2
      is_auto_onhold:
        description: >-
          Indicates if order is automatically pushed to production (default =
          false)
        type: boolean
        example: true
      integrations:
        description: List of integrations (connected applications) for this user
        type: array
        items:
          $ref: '#/definitions/UserIntegration'
      updated_at:
        description: Timestamp of last update
        type: string
        example: '2017-01-01 12:34:56'
      add_delivery_receipt:
        description: >-
          Indicates if delivery receipt is added to orders received via this
          intergrations
        type: boolean
        example: true
      delivery_receipt_note:
        description: Custom note on delivery receipt
        type: string
        example: Use voucher XYZ and get a 10% discount for your next order
      default_delivery_receipt_logo_reference:
        description: Default delivery receipt logo used for orders placed via dashboard
        type: string
        example: ABC123
      delivery_receipt_logo:
        description: >-
          Url to custom logo added to delivery slip and shipping lable for
          orders placed via dashboard
        type: string
        example: https://example.com/custom_logo.png
      use_custom_product_name:
        description: Indicates if custom product name is used on delivery receipt
        type: boolean
        example: true
      default_first_packin_reference:
        description: Default first packin added to orders placed via dashboard (optional)
        type: string
        example: ABC123
      default_second_packin_reference:
        description: Default second packin added to orders placed via dashboard (optional)
        type: string
        example: ABC123
      default_hangtag_reference:
        description: >-
          Default hangtag added to all textil products of orders placed via
          dashboard (optional)
        type: string
        example: ABC123
      sticker_logo:
        description: Url to custom sticker logo for orders placed via dashboard (optional)
        type: string
        example: https://example.com/custom_logo.png
    type: object
  Webhook:
    properties:
      id:
        description: Unique identifier for the User Webhook
        type: string
        example: ABC123DEF5
      user_webhook_type_key:
        description: Key for the associated User Webhook Type
        type: string
        example: Order.created
      url:
        description: URL for the User Webhook
        type: string
        example: https://example.com/webhook
      secret:
        description: Secret for the User Webhook
        type: string
        example: mysecretkey
      signature_header:
        description: Signature header for the User Webhook
        type: string
        example: signature
      is_active:
        description: Indicates if the User Webhook is active
        type: boolean
        example: true
      created_at:
        description: Creation timestamp of the User Webhook
        type: string
        example: '2023-01-01T00:00:00'
      updated_at:
        description: Update timestamp of the User Webhook
        type: string
        example: '2023-01-02T00:00:00'
    type: object
  WebhookType:
    properties:
      id:
        description: Unique identifier for the webhook type
        type: integer
        format: int32
      key:
        description: Key for the webhook type
        type: string
      resource:
        description: Resource for the webhook type
        type: string
        example: Order
      action:
        description: Action for the webhook type
        type: string
        example: created
      max_tries:
        description: Maximum number of tries for the webhook type
        type: integer
        format: int32
        example: '5'
      name:
        description: Name of the webhook type
        type: string
        example: Order created
      description:
        description: Description of the webhook type
        type: string
        example: Triggered when a new Order was created.
    type: object
  WarehouseInboundShipment:
    properties:
      id:
        description: id
        type: '1'
      reference:
        description: Reference
        type: string
        example: A1234567
      name:
        description: Name of the Warehouse inbound shipment
        type: string
        example: Warehouse inbound shipment
      carrier:
        description: Carrier's name
        type: string
        example: DHL
      tracking_number:
        description: Shipment tracking number
        type: string
        example: AA123345567BB
      url:
        description: Inbound shipment URL
        type: string
        example: https://dhl.com/tracking
      count:
        description: Count of the items in the shipment
        type: string
        example: 5
      created_at:
        description: Timestamp when the record was created
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp when the record was updated
        type: string
        example: '2017-01-01 12:34:56'
      deleted_at:
        description: Timestamp when the record was deleted
        type: string
        example: '2017-01-01 12:34:56'
  WarehouseProduct:
    properties:
      id:
        description: id
        type: '1'
      reference:
        description: Reference
        type: string
        example: A12345
      name:
        description: Name of the Warehouse product
        type: string
        example: Warehouse product name
      description:
        description: Description of the Warehouse product
        type: string
        example: Warehouse product description
      hs_code:
        description: HS code of the item
        type: string
        example: A123123
      country_of_origin:
        description: The name the country of origin
        type: string
        example: DE
      color_id:
        description: ID of the color of the item
        type: string
        example: '1'
      item_value:
        description: Value of the item
        type: integer
        example: 300
      net_sales_price:
        description: Net sales price of the item
        type: integer
        example: 25
      width_cm:
        description: Width of the item in cm
        type: integer
        example: 20
      height_cm:
        description: Height of the item in cm
        type: integer
        example: 20
      depth_cm:
        description: Depth of the item in cm
        type: integer
        example: 30
      weight_gram:
        description: Weight of the item in gramm
        type: integer
        example: 500
      needs_box_shipping:
        description: Boolean if the item needs extra package for shipping
        type: boolean
        example: true
      min_stock_quantity:
        description: Minimum stock quantity of the item
        type: integer
        example: 100
      created_at:
        description: Timestamp when the record was created
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp when the record was updated
        type: string
        example: '2017-01-01 12:34:56'
      deleted_at:
        description: Timestamp when the record was deleted
        type: string
        example: '2017-01-01 12:34:56'
  WarehouseProductVariant:
    properties:
      id:
        description: id
        type: '1'
      reference:
        description: Reference
        type: string
        example: A12345
      product_reference:
        description: Warehouse Product reference
        type: string
        example: A12345
      name:
        description: Name of the Warehouse product variant
        type: string
        example: Warehouse product variant name
      description:
        description: Description of the Warehouse product variant
        type: string
        example: Warehouse product variant description
      color_id:
        description: ID of the color of the item
        type: string
        example: '1'
      size_id:
        description: ID of the size of the item
        type: string
        example: '1'
      color:
        description: Name of the color of the item
        type: string
        example: Red
      size:
        description: Name of the size of the item
        type: string
        example: XL
      width_cm:
        description: Width of the item in cm
        type: integer
        example: 20
      height_cm:
        description: Height of the item in cm
        type: integer
        example: 20
      depth_cm:
        description: Depth of the item in cm
        type: integer
        example: 30
      weight_gram:
        description: Weight of the item in gramm
        type: integer
        example: 500
      item_value:
        description: Value of the item
        type: integer
        example: 300
      net_sales_price:
        description: Net sales price of the item
        type: integer
        example: 25
      shirtigo_price:
        description: Shirtigo sales price of the item
        type: integer
        example: 20
      min_stock_quantity:
        description: Minimum stock quantity of the item
        type: integer
        example: 100
      needs_box_shipping:
        description: Boolean if the item needs extra package for shipping
        type: boolean
        example: true
      country_of_origin:
        description: The name the country of origin
        type: string
        example: DE
      hs_code:
        description: HS code of the item
        type: string
        example: A123123
      created_at:
        description: Timestamp when the record was created
        type: string
        example: '2017-01-01 12:34:56'
      updated_at:
        description: Timestamp when the record was updated
        type: string
        example: '2017-01-01 12:34:56'
      deleted_at:
        description: Timestamp when the record was deleted
        type: string
        example: '2017-01-01 12:34:56'
      is_stored:
        description: Boolean if the item is stored
        type: boolean
        example: true
      is_approved:
        description: Boolean if the item is approved
        type: boolean
        example: true
      is_rejected:
        description: Boolean if the item is rejected to store
        type: boolean
        example: 'false'
      stock_amount:
        description: Current stock amount of the item
        type: integer
        example: 100
  Money:
    properties:
      amount:
        description: Price in cents
        type: integer
        example: 999
      currency_symbol:
        description: Currency symbol
        type: string
        example: €
      currency_code:
        description: Three letter ISO 4217 code
        type: string
        example: EUR
      currency_factor:
        description: Number of cents in one unit of currency
        type: integer
        example: 100
    type: object
  MoneyVatInclude:
    properties:
      vat_rate:
        description: Value added tax (VAT) rate in percent as an integer
        type: float
        example: 19
  MoneyWithVat:
    type: object
    allOf:
      - $ref: '#/definitions/Money'
      - $ref: '#/definitions/MoneyVatInclude'
  OAuthServerException:
    required:
      - error
      - message
    properties:
      error:
        description: Machine readable error type.
        type: string
      message:
        description: Human readable error message.
        type: string
      hint:
        description: A helper hint.
        type: string
    type: object
  Pagination:
    description: Pagination information
    properties:
      total:
        description: Total number of items
        type: integer
        example: 32
      count:
        description: Number of items on current page
        type: integer
        example: 10
      per_page:
        description: Default number of items per page
        type: integer
        example: 10
      current_page:
        description: Index of current page
        type: integer
        example: 2
      total_pages:
        description: Total number of pages
        type: integer
        example: 4
      links:
        description: URLs of adjacent pages
        properties:
          previous:
            description: URL of previous page
            type: string
          next:
            description: URL of next page
            type: string
    type: object
parameters:
  base-product-id:
    name: base-product-id
    in: path
    description: Numerical base product identifier
    required: true
    type: integer
    x-example: 25
  project-reference:
    name: project-reference
    in: path
    description: Unique project identifier
    required: true
    type: string
    x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
  product-id:
    name: product-id
    in: path
    description: Numerical product identifier
    required: true
    type: integer
    x-example: 25
  UpdateProductColors:
    name: UpdateProductColors
    in: body
    schema:
      required:
        - processings
      properties:
        processings:
          description: List of processings to add / update
          type: array
          items:
            properties:
              processingarea_type:
                description: >-
                  Processing area type. Not required when only prices are
                  adjusted
                type: string
                example: front
              processingposition:
                description: Processing position
                type: string
                default: chest-center
                example: chest-center
              processingmethod:
                description: Processing method
                type: string
                default: dtg
                example: dtg
              design_reference:
                description: >-
                  Design for the customization. This parameter if new colors are
                  added and the referenceColor option is not used.
                type: string
                example: 310ef229-2254-4f4f-9041-a8e02674ff36
              offset_top:
                description: >-
                  Vertical offset from top in millimeters. This parameter if new
                  colors are added and the referenceColor option is not used.
                type: integer
                default: 0
                example: 50
              offset_center:
                description: >-
                  Horizontal offset from center in millimeters.  This parameter
                  if new colors are added and the referenceColor option is not
                  used.
                type: integer
                default: 0
                example: 0
              width:
                description: >-
                  Design width in millimeters.  This parameter if new colors are
                  added and the referenceColor option is not used.
                type: string
                example: 200
              is_customizable:
                description: >-
                  inidicated if order products can be customized after order was
                  placed
                type: boolean
                default: 'false'
                example: 'false'
              force_position:
                description: >-
                  inidicated if order products can be customized after order was
                  placed
                type: boolean
                default: 'false'
                example: 'false'
              colors:
                description: >-
                  List of baseProduct colors which should be assigned to this
                  processing
                type: array
                items:
                  properties:
                    colorId:
                      description: Numeric identifier of baseProduct color
                      type: integer
                      example: 608
                    referenceColorId:
                      description: >-
                        A reference color, where all processing info is taken
                        from and used as the basis for the added colors.
                      type: integer
                      example: 2195
                    price:
                      description: Your sales price for this product color in cents
                      type: integer
                      example: 2195
                    sortPosition:
                      description: sort position for this color
                      type: integer
                      example: 1
            type: object
      type: object
  design-reference:
    name: design-reference
    in: path
    description: Unique design identifier
    required: true
    type: string
    x-example: 9e7aba40-3bce-4639-9caa-9a9a0397cbff
  integration_id:
    name: integration_id
    in: path
    description: ID of the integration
    required: true
    type: integer
  order_reference:
    name: order_reference
    in: path
    description: The unique reference identifier of the order
    required: true
    type: string
securityDefinitions:
  cockpit_apikey:
    type: apiKey
    description: >-
      This API supports access via an API key. A key can be obtained from the
      integrations dashboard. The key must be presented in the 'Authorization'
      header, e.g. 'Authorization: Bearer [key]'.
    name: Authorization
    in: header
  cockpit_oauth:
    type: oauth2
    description: >-
      This API supports OAuth2 with the authorization-code flow. A detailed
      tutorial on this topic can be found
      [here](https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2).
      Note that the endpoint is `/oauth/`, not `/api/oauth/` as indicated here
      in the documentation.
    flow: accessCode
    authorizationUrl: /oauth/authorize
    tokenUrl: /oauth/token
    scopes:
      read-user: Read user information
      write-user: Modify user information
      read-design: Read existing designs
      write-design: Create and modify designs
      read-project: Read existing projects and products
      write-project: Create and modify projects and products
      read-order: Read past orders
      write-order: Place new orders
      read-stats: Read selling statistics
