components:
  parameters:
    campaignNameQuery:
      description: Reference to a name
      in: query
      name: name
      required: false
      schema:
        type: string
    campaignDisplayNameQuery:
      description: Reference to a display name
      in: query
      name: displayName
      required: false
      schema:
        type: string
    campaignCodeQuery:
      description: Reference to a campaign code
      in: query
      name: campaignCode
      required: false
      schema:
        type: string
    campaignValidFromQuery:
      description: Reference to a valid from
      in: query
      name: validFrom
      required: false
      schema:
        type: string
        format: date-time
    campaignValidToQuery:
      description: Reference to a valid to
      in: query
      name: validTo
      required: false
      schema:
        type: string
        format: date-time
    campaignTypeQuery:
      description: Reference to a type
      in: query
      name: type
      required: false
      schema:
        $ref: '#/components/schemas/CampaignTypeENUM'
    campaignProductOnCampaignTypeQuery:
      description: Reference to a type of products on a campaign
      in: query
      name: selection
      required: false
      schema:
        $ref: '#/components/schemas/ProductOnCampaignType'
    campaignDiscountTypeQuery:
      description: Reference to a discount type
      in: query
      name: discountType
      required: false
      schema:
        $ref: '#/components/schemas/CampaignDiscountTypeENUM'
    campaignStoreUidQuery:
      description: Reference to a storeUid
      in: query
      name: storeUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    campaignStatusQuery:
      description: Reference to a campaign status
      in: query
      name: status
      required: false
      schema:
        $ref: '#/components/schemas/CampaignStatusENUM'
    internalPurchaseOrderFromDateQuery:
      description: Reference to a to-date-time
      name: internalPurchaseOrderFromDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
    internalPurchaseOrderToDateQuery:
      description: Reference to a from-date-time
      name: internalPurchaseOrderToDate
      in: query
      required: false
      schema:
        type: string
        format: date-time
    InternalPurchaseOrderSendingStoreUidQuery:
      description: Reference to a store uid
      in: query
      name: sendingStoreUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    InternalPurchaseOrderReceivingStoreUidQuery:
      description: Reference to a store uid
      in: query
      name: receivingStoreUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    InternalPurchasingOrderStatusesQuery:
      description: Reference to a internal purchase order status
      in: query
      name: internalPurchasingOrderStatuses
      required: false
      explode: false
      schema:
        items:
          $ref: '#/components/schemas/InternalPurchaseOrderStatusENUM'
        type: array
      style: form
    tenantExtensionActiveQuery:
      description: filter on active status for a store extension.
      in: query
      name: tenantExtensionActiveQuery
      required: false
      schema:
        type: boolean
    tenantExtensionStoreNameQuery:
      description: filter on store name for a store extension
      in: query
      name: tenantExtensionStoreNameQuery
      required: false
      schema:
        type: string
    availabilityTypeQuery:
      description: Reference to an availabilityType.
      explode: false
      in: query
      name: availabilityType
      schema:
        $ref: '#/components/schemas/AvailabilityTypeENUM'
      style: form
    assetCategoryQuery:
      description: Filter on categories
      explode: false
      in: query
      name: categories
      schema:
        items:
          $ref: '#/components/schemas/AssetCategoryENUM'
        type: array
      style: form
    brandExternalIdQuery:
      description: External reference to a brand.
      in: query
      name: brandExternalId
      required: false
      schema:
        type: string
    tenantuserQueryQuery:
      description: Query string for tenant users
      in: query
      name: query
      required: false
      schema:
        type: string
    tenantuserOrganizationUid:
      description: Reference to an Organization
      in: query
      name: tenantuserOrganizationUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    tenantuserStoreUid:
      description: Reference to a Store
      in: query
      name: tenantuserStoreUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    brandUid:
      description: Reference to a Brand.
      in: path
      name: brandUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    httpTransportUid:
      description: Reference to a Http Transport.
      in: path
      name: httpTransportUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    httpTransportUidQuery:
      description: Http Transport uid
      in: query
      name: httpTransportUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    importTemplateUidsQuery:
      description: Reference to a Import Template.
      in: query
      name: importTemplateUids
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    importFileStateQuery:
      description: Reference to a importfile state.
      in: query
      name: importFileState
      required: false
      schema:
        $ref: '#/components/schemas/ImportStateENUM'
    brandUidsQuery:
      description: Reference to a list of brand Ids.
      explode: false
      in: query
      name: brandUids
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    brandNameQuery:
      description: Reference to the name of a brand.
      in: query
      name: brandName
      required: false
      schema:
        type: string
    cashreportFromDateQuery:
      description: Reference to a from-date.
      in: query
      name: cashreportFromDate
      schema:
        format: date
        type: string
      style: form
    cashreportUid:
      description: Reference to a cashreport.
      in: path
      name: cashreportUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    cashreportToDateQuery:
      description: Reference to a to-date.
      in: query
      name: cashreportToDate
      schema:
        format: date
        type: string
      style: form
    categoryExternalIdQuery:
      description: External reference to a category.
      in: query
      name: categoryExternalId
      required: false
      schema:
        type: string
    categoryUid:
      description: Reference to a Category.
      in: path
      name: categoryUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    categoryParentUidQuery:
      description: Filter on category parent uid
      in: query
      name: categoryParentUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    checkStatusQuery:
      description: Check external payment gateways and fetch status
      in: query
      name: checkStatus
      schema:
        type: boolean
    countryUid:
      description: Reference to a Country.
      in: path
      name: countryUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    customerExternalIdQuery:
      description: External reference to a customer.
      in: query
      name: customerExternalId
      required: false
      schema:
        type: string
    customerUid:
      description: Reference to a Customer.
      in: path
      name: customerUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    customerContactUid:
      description: Reference to a Customer contact.
      in: path
      name: customerContactUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    customerAddressUid:
      description: Reference to a Customer address.
      in: path
      name: customerAddressUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    deliveryUid:
      description: Reference to a delivery
      in: path
      name: deliveryUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    deviceUid:
      description: Reference to a device
      in: path
      name: deviceUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    categoriesStoreUidQuery:
      description: Reference to a store uid
      in: query
      name: storeUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    deviceStoreUidQuery:
      description: Reference to a store uid
      in: query
      name: deviceStoreUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    flowboxUid:
      description: Reference to a Flowbox.
      in: path
      name: flowboxUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    flowboxPeripheralUid:
      description: Reference to peripheral connected to a Flowbox.
      in: path
      name: flowboxPeripheralUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    forceDeleteQuery:
      description: Force Delete on a settlement
      in: query
      name: forceDelete
      schema:
        type: boolean
    giftcardNumber:
      description: Reference to a giftcard number.
      in: path
      name: giftcardNumber
      required: true
      schema:
        type: string
    handlingActionUid:
      description: Reference to an handling action id.
      in: path
      name: handlingActionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    handlingUid:
      description: Reference to an handling id.
      in: path
      name: handlingUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    includeDisplayMessagesQuery:
      description: Include display messages in the response
      in: query
      name: includeDisplayMessages
      schema:
        type: boolean
    numberSeriesUid:
      description: Reference to a number serie id.
      in: path
      name: numberSeriesUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    numberSeriesTypeQuery:
      description: The number series type
      in: query
      name: numberSeriesType
      required: false
      schema:
        type: string
    orderCustomerUidQuery:
      description: Reference to a Customer uid.
      in: query
      name: orderCustomerUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    orderDeliveryStatesQuery:
      description: Reference to an OrderDeliveryState.
      explode: false
      in: query
      name: orderDeliveryStates
      schema:
        items:
          $ref: '#/components/schemas/OrderDeliveryStateENUM'
        type: array
      style: form
    orderExternalOrderNumberQuery:
      description: External reference to a orderUid.
      in: query
      name: orderExternalOrderNumber
      required: false
      schema:
        type: string
    orderExternalVoucherNumberQuery:
      description: External reference to a voucher id.
      in: query
      name: orderExternalVoucherNumber
      required: false
      schema:
        type: string
    orderHandlingActionUid:
      description: Reference to an orderhandling action id.
      in: path
      name: orderHandlingActionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    orderHandlingUid:
      description: Reference to an orderhandling id.
      in: path
      name: orderHandlingUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    orderTenantUserUidsQuery:
      description: Reference to a tenantUserUid.
      explode: false
      in: query
      name: orderTenantUserUids
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    orderHandlingUidQuery:
      description: Reference to a handling uid.
      explode: false
      in: query
      name: orderHandlingUids
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    orderTillUidQuery:
      description: Reference to a till uid.
      explode: false
      in: query
      name: orderTillUid
      schema:
        $ref: '#/components/schemas/UID'
      style: form
    orderHandlingStatesQuery:
      description: Reference to an HandlingState. Use with orderHandlingUid
      explode: false
      in: query
      name: orderHandlingStates
      schema:
        items:
          $ref: '#/components/schemas/HandlingStateENUM'
        type: array
      style: form
    orderUid:
      description: Reference to an Order.
      in: path
      name: orderUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    orderItemUid:
      description: Reference to an order item on an order.
      in: path
      name: orderItemUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    orderOrderStatesQuery:
      description: Reference to a list of OrderStates.
      explode: false
      in: query
      name: orderOrderStates
      schema:
        items:
          $ref: '#/components/schemas/OrderOrderStateENUM'
        type: array
      style: form
    orderSettleStatesQuery:
      description: Reference to an OrderSettleState.
      explode: false
      in: query
      name: orderSettleStates
      schema:
        items:
          $ref: '#/components/schemas/OrderSettleStateENUM'
        type: array
      style: form
    orderStatusesQuery:
      description: Reference to an OrderStatus.
      explode: false
      in: query
      name: orderStatuses
      schema:
        items:
          $ref: '#/components/schemas/OrderStatusENUM'
        type: array
      style: form
    orderTypesQuery:
      description: Reference to the OrderType.
      explode: false
      in: query
      name: orderTypes
      required: false
      schema:
        items:
          $ref: '#/components/schemas/OrderTypeENUM'
        type: array
      style: form
    pageNumberQuery:
      description: Reference to a specific page in a result set.
      in: query
      name: pageNumber
      required: false
      schema:
        type: integer
    pageSizeQuery:
      description: The number of items per page in a result set.
      in: query
      name: pageSize
      required: false
      schema:
        type: integer
    priceUid:
      description: Reference to a Price.
      in: path
      name: priceUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    priceProductExternalIdQuery:
      description: External reference to a product.
      in: query
      name: priceProductExternalId
      required: false
      schema:
        type: string
    priceProductUidQuery:
      description: Reference to a product uid.
      in: query
      name: priceProductUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    priceProductSkuQuery:
      description: reference to a product sku.
      in: query
      name: priceProductSku
      required: false
      schema:
        type: string
    pricelistUid:
      description: Reference to a Pricelist.
      in: path
      name: pricelistUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    pricelistExternalIdQuery:
      description: External reference to a pricelist.
      in: query
      name: pricelistExternalId
      required: false
      schema:
        type: string
    soaNameQuery:
      description: Reference to the name of a SOA.
      in: query
      name: name
      required: false
      schema:
        type: string
    soaExternalIdQuery:
      description: External reference to a SOA.
      in: query
      name: externalId
      required: false
      schema:
        type: string
    pricelistNameQuery:
      description: Reference to the name of a pricelist.
      in: query
      name: pricelistName
      required: false
      schema:
        type: string
    productBrandUidQuery:
      description: Reference to a Brand uid.
      in: query
      name: productBrandUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    excludeVariantsQuery:
      description: Exclude product variants.
      in: query
      name: excludeVariants
      required: false
      schema:
        type: boolean
    productPropertyUidsQuery:
      description: Reference to a list of propertyUids.
      in: query
      name: productPropertyUids
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    productPropertyOptionUidsQuery:
      description: Reference to a list of property options.
      in: query
      name: productPropertyOptionUids
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    productVisibilityQuery:
      description: Filter on visibility
      in: query
      name: visibility
      required: false
      schema:
        items:
          $ref: '#/components/schemas/ProductVisibilityENUM'
        type: array
      style: form
    productExternalIdQuery:
      description: External reference to a product.
      in: query
      name: productExternalId
      required: false
      schema:
        type: string
    productGroupExternalIdQuery:
      description: External reference to a product group.
      in: query
      name: productGroupExternalId
      required: false
      schema:
        type: string
    productGroupUid:
      description: Reference to a ProductGroup.
      in: path
      name: productGroupUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productGroupUidQuery:
      description: Reference to a ProductGroup uid.
      in: query
      name: productGroupUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    productGroupUidsQuery:
      description: Reference to a list of productGroup Ids.
      explode: false
      in: query
      name: productGroupUids
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      style: form
    productGroupNameQuery:
      description: Reference to the name of a product group.
      in: query
      name: productGroupName
      required: false
      schema:
        type: string
    productPropertyUid:
      description: Reference to a Product property.
      in: path
      name: productPropertyUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productUid:
      description: Reference to a Product.
      in: path
      name: productUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productVariantUid:
      description: Reference to a Product variant.
      in: path
      name: productVariantUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productLinkUid:
      description: Reference to a Product link.
      in: path
      name: productLinkUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productGroupLinkUid:
      description: Reference to a Product group link.
      in: path
      name: productGroupLinkUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    productLinkTypeQuery:
      description: Reference to a productLinkType.
      explode: false
      in: query
      name: productLinkType
      schema:
        $ref: '#/components/schemas/ProductLinkTypeENUM'
      style: form
    productGroupLinkTypeQuery:
      description: Reference to a productGroupLinkType.
      explode: false
      in: query
      name: productGroupLinkType
      schema:
        $ref: '#/components/schemas/ProductGroupLinkTypeENUM'
      style: form
    systemCodeQuery:
      description: Reference to a system code
      explode: false
      in: query
      name: systemCode
      schema:
        $ref: '#/components/schemas/ExternalSystemCodeENUM'
      style: form
    productNameQuery:
      description: Reference to the name of a product.
      in: query
      name: productName
      required: false
      schema:
        type: string
    deliveryProviderQuery:
      description: Query for the deliveryProvider
      in: query
      name: query
      required: false
      schema:
        type: string
    deliveryProviderMethodQuery:
      description: Query for the deliveryProviderMethod
      in: query
      name: query
      required: false
      schema:
        type: string
    propertyUid:
      description: Reference to a product property definition
      in: path
      name: propertyUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    propertyOptionUid:
      description: Reference to an allowed option of a product property definition
      in: path
      name: propertyOptionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    purchaseOrderExternalIdQuery:
      description: External reference to a purchaseOrderUid.
      in: query
      name: purchaseOrderExternalId
      required: false
      schema:
        type: string
    purchaseOrderUid:
      description: Reference to a PurchaseOrder.
      in: path
      name: purchaseOrderUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    purchaseOrderItemUid:
      description: Reference to an item on a purchase order
      in: path
      name: purchaseOrderItemUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    purchaseOrderStatusQuery:
      description: Reference to an PurchaseOrderStatus.
      explode: false
      in: query
      name: purchaseOrderStatus
      schema:
        items:
          $ref: '#/components/schemas/PurchaseOrderStatusENUM'
        type: array
      style: form
    reasonUid:
      description: Reference to a reason.
      in: path
      name: reasonUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    reasonTypeQuery:
      description: Reference to a reason Type.
      in: query
      name: reasonType
      required: false
      schema:
        $ref: '#/components/schemas/ReasonTypeENUM'
    receivementExternalIdQuery:
      description: External reference to a receivement.
      in: query
      name: receivementExternalId
      required: false
      schema:
        type: string
    receivementUid:
      description: Reference to a receivement of a purchase order.
      in: path
      name: receivementUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    receivementItemUid:
      description: Reference to an item on a specific receivement.
      in: path
      name: receivementItemUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    receivementProductUidQuery:
      description: Reference to a product uid.
      in: query
      name: receivementProductUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    receivementPurchaseOrderUidQuery:
      description: Reference to a purchaseOrder uid.
      in: query
      name: receivementPurchaseOrderUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    resendInviteQuery:
      description: Check external payment gateways and fetch status
      in: query
      name: resendInvite
      schema:
        type: boolean
    serialnumber:
      description: Reference to a serialnumber.
      in: path
      name: serialnumber
      required: true
      schema:
        type: string
    settlementUid:
      description: Reference to a settlement on an order.
      in: path
      name: settlementUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    sortByQuery:
      description: Defines which field the resource list is sorted by.
      in: query
      name: sortBy
      required: false
      schema:
        type: string
    sortDirectionQuery:
      description: Reference to a sort direction
      explode: false
      in: query
      name: sortDirection
      schema:
        $ref: '#/components/schemas/SortDirectionENUM'
      style: form
    stocktakingUid:
      description: Reference to a Stocktaking.
      in: path
      name: stocktakingUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    stocktakingItemUid:
      description: Reference to a Stocktaking item id.
      in: path
      name: stocktakingItemUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    stocktakingStatusQuery:
      description: Reference to a stocktaking Status.
      explode: false
      in: query
      name: status
      schema:
        items:
          $ref: '#/components/schemas/StocktakingStatusENUM'
        type: array
      style: form
    stocktakingTypeQuery:
      description: Reference to an stocktaking Type.
      explode: false
      in: query
      name: type
      schema:
        $ref: '#/components/schemas/StocktakingTypeENUM'
      style: form
    storeExternalIdQuery:
      description: External reference to a store.
      in: query
      name: storeExternalId
      required: false
      schema:
        type: string
    storeOrganizationUidQuery:
      description: Reference to an organization uid.
      in: query
      name: storeOrganizationUid
      required: false
      schema:
        type: string
    organizationExternalIdQuery:
      description: External reference to an organization.
      in: query
      name: organizationExternalId
      required: false
      schema:
        type: string
    handlingActionStoreUidQuery:
      description: Reference to a store uid.
      in: query
      name: handlingActionStoreUid
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    storeUid:
      description: Reference to a Store.
      in: path
      name: storeUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    receiptUid:
      description: Reference to a Receipt.
      in: path
      name: receiptUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    organizationUid:
      description: Reference to an organization.
      in: path
      name: organizationUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    internalPurchaseOrderUid:
      description: Reference to an internal purchase order.
      in: path
      name: internalPurchaseOrderUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    internalPurchaseOrderItemUid:
      description: Reference to an internal purchase order item.
      in: path
      name: internalPurchaseOrderItemUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    reportUid:
      description: Reference to a report.
      in: path
      name: reportUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    storeNameQuery:
      description: Reference to the name of a store.
      in: query
      name: storeName
      required: false
      schema:
        type: string
    organizationNameQuery:
      description: Reference to the name of an organization.
      in: query
      name: organizationName
      required: false
      schema:
        type: string
    TenantAccountTypeQuery:
      description: Account types to return
      schema:
        items:
          $ref: '#/components/schemas/TenantAccountTypeENUM'
        type: array
      in: query
      name: accountType
      explode: false
    storePaymentMethodCodeQuery:
      description: Reference to a payment method code
      in: query
      name: storePaymentMethodCode
      schema:
        items:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
        type: array
    storePaymentMethodUid:
      description: Reference to a store PaymentMethodUid.
      in: path
      name: storePaymentMethodUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    storeExtensionUid:
      description: Reference to a store extension.
      in: path
      name: storeExtensionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    storeSettlementIssuerUid:
      description: Reference to a store settlement issuerId.
      in: path
      name: storeSettlementIssuerUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    supplierExternalIdQuery:
      description: External id of a supplier.
      in: query
      name: supplierExternalId
      required: false
      schema:
        type: string
    supplierUid:
      description: Reference to a Supplier.
      in: path
      name: supplierUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    supplierNameQuery:
      description: Reference to the name of a supplier.
      in: query
      name: supplierName
      required: false
      schema:
        type: string
    supplierProductUid:
      description: Reference to the product of a supplier.
      in: path
      name: supplierProductUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    importTemplateUid:
      description: Reference to a import template.
      in: path
      name: importTemplateUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    templateUid:
      description: Reference to a template.
      in: path
      name: templateUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    importLayoutUid:
      description: Reference to a import layout.
      in: path
      name: importLayoutUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    importFileUid:
      description: Reference to a import file.
      in: path
      name: importFileUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    importConversionUid:
      description: Reference to a import layout conversion.
      in: path
      name: importConversionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantUid:
      description: Reference to a tenant.
      in: path
      name: tenantUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantRoleUid:
      description: Reference to a tenantRole.
      in: path
      name: tenantRoleUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    soaUid:
      description: Reference to a SOA.
      in: path
      name: soaUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    soaAmountUid:
      description: Reference to a SOA amount.
      in: path
      name: soaAmountUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    compensationReasonUid:
      description: Reference to a compensation reason.
      in: path
      name: compensationReasonUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    compensationUid:
      description: Reference to a compensation.
      in: path
      name: compensationUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    campaignUid:
      description: Reference to a campaign.
      in: path
      name: campaignUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    deliveryProviderMethodUid:
      description: Reference to a delivery provider method.
      in: path
      name: deliveryProviderMethodUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    deliveryProviderMethodMappingUid:
      description: Reference to a delivery provider method.
      in: path
      name: deliveryProviderMethodMappingUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    deliveryProviderUid:
      description: Reference to a delivery provider.
      in: path
      name: deliveryProviderUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantPaymentMethodVisibilityQuery:
      description: Filter by visibility
      in: query
      name: visibility
      schema:
        items:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        type: array
    tenantPaymentMethodUid:
      description: Reference to a tenant PaymentMethodUid.
      in: path
      name: tenantPaymentMethodUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantPaymentMethodMappingUid:
      description: Reference to a tenantPaymentMethodMappingUid.
      in: path
      name: tenantPaymentMethodMappingUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantExtensionUid:
      description: Reference to a tenant extension.
      in: path
      name: tenantExtensionUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantUserUid:
      description: Reference to a TenantUser.
      in: path
      name: tenantUserUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantUserTokenUid:
      description: Reference to a TenantUserToken.
      in: path
      name: tenantUserTokenUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tenantUserRoleAssignmentUid:
      description: Reference to a TenantUserRoleAssignment.
      in: path
      name: tenantUserRoleAssignmentUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    tillUid:
      description: Reference to a till.
      in: path
      name: tillUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    vatCountryCodeQuery:
      description: Filter by country
      in: query
      name: vatCountryCode
      schema:
        type: string
    warehouseAccessUid:
      description: Reference to details about a stores access level to a warehouse.
      in: path
      name: warehouseAccessUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    warehouseExternalIdQuery:
      description: External reference to a warehouse.
      in: query
      name: warehouseExternalId
      required: false
      schema:
        type: string
    warehouseUid:
      description: Reference to a Warehouse.
      in: path
      name: warehouseUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    warehouseNameQuery:
      description: Reference to the name of a warehouse.
      in: query
      name: warehouseName
      required: false
      schema:
        type: string
    warehouseRoleQuery:
      description: |-
        Reference to a warehouse role
        |ENUM      | Description |
        | ---------------- | ------------ |
        | DELIVER||
        | MOVE||
        | RECEIVE||
        | RESERVE||
        | RETURN||
        | VIEW||
      in: query
      name: warehouseRole
      required: false
      schema:
        enum:
          - DELIVER
          - MOVE
          - RECEIVE
          - RESERVE
          - RETURN
          - VIEW
        type: string
    webhookUid:
      description: Reference to a webhook
      in: path
      name: webhookUid
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    withProductsQuery:
      description: Include Product list
      in: query
      name: withProducts
      required: false
      schema:
        type: boolean
    orderSettledAtFromQuery:
      name: orderSettledAtFrom
      in: query
      schema:
        type: string
        format: date-time
      description: Filter by settled at from a specific date
    orderSettledAtToQuery:
      name: orderSettledAtTo
      in: query
      required: false
      schema:
        type: string
        format: date-time
      description: Filter by settled at to a specific date
    orderCreatedAtFromQuery:
      name: orderCreatedAtFrom
      in: query
      required: false
      schema:
        type: string
        format: date-time
      description: Filter by created at from a specific date
    orderCreatedAtToQuery:
      name: orderCreatedAtTo
      in: query
      required: false
      schema:
        type: string
        format: date-time
      description: Filter by created at to a specific date
    serviceOrderUid:
      name: serviceOrderUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service order
    serviceOrderItemUid:
      name: serviceOrderItemUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service order item
    serviceEventUid:
      name: serviceEventUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service event
    serviceHoursUid:
      name: serviceHoursUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service hours entry
    serviceTypeUid:
      name: serviceTypeUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service type
    serviceStatusUid:
      name: serviceStatusUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a service status
    productGroupScopesQuery:
      name: productGroupScopes
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/ProductGroupScopeENUM'
        type: array
      description: Filter by scope
    vippsOrderId:
      description: VIPPS order id
      in: path
      name: vippsOrderId
      required: true
      schema:
        type: string
    serviceOrderHash:
      name: serviceOrderHash
      in: path
      required: true
      schema:
        type: string
      description: Encrypted reference to a service order
    serviceOrderStateQuery:
      name: serviceOrderStates
      in: query
      required: false
      description: Filter by service-order state
      schema:
        items:
          $ref: '#/components/schemas/ServiceStateENUM'
        type: array
      style: form
    includeLayoutsQuery:
      name: includeLayouts
      in: query
      required: false
      schema:
        type: boolean
      description: Include layouts in response
    includeConversionsQuery:
      name: includeConversions
      in: query
      required: false
      schema:
        type: boolean
      description: Include conversions in response
    flowboxUidQuery:
      name: flowboxUid
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a flowbox uid
    flowboxPeripheralTypeQuery:
      description: flowbox periheral type
      name: flowboxPeripheralType
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/FlowboxPeripheralTypeENUM'
        type: array
      style: form
    productMediaUid:
      name: productMediaUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a product media record.
    externalWorkshopUid:
      name: externalWorkshopUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to an external workshop.
    customerExtensionCode:
      description: Reference to a customer extension code
      name: customerExtensionCode
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/CustomerExtensionCodeENUM'
    serviceShipmentUid:
      name: serviceShipmentUid
      in: path
      schema:
        $ref: '#/components/schemas/UID'
      required: true
      description: Reference to a service shipment.
    accountingConfigUid:
      name: accountingConfigUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a Accounting Configs entry.
    assetUid:
      name: assetUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to an asset
    customerGroupUid:
      name: customerGroupUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a customer group
    deliveryProviderMethodTimeslotUid:
      name: deliveryProviderMethodTimeslotUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a timeslot.
    reportType:
      name: reportType
      description: Filter by report type
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/ReportTypeENUM'
        type: array
      style: form
    tenantPaymentMethodParameterUid:
      name: tenantPaymentMethodParameterUid
      in: path
      required: true
      schema:
        type: string
      description: Primary key of the TenantPaymentMethodParameter table
    currencyUid:
      name: currencyUid
      in: path
      required: true
      schema:
        type: string
      description: Key to currency
    consentUid:
      name: consentUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a consent
    serviceTypeUidsQuery:
      name: serviceTypeUids
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      description: Filter by service types
    assignedUserUidsQuery:
      name: assignedUserUids
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      description: Filter by assigned users
    createdFromStoreUidsQuery:
      name: createdFromStoreUids
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      description: Filter by created-from-stores
    priorityQuery:
      name: priorities
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/PriorityENUM'
        type: array
      description: Filter by priorities.
    hourlyRateUid:
      name: hourlyRateUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a hourly rate.
    countryCode:
      description: countryCode
      name: countryCode
      in: path
      required: true
      schema:
        type: string
    orderDiscountUid:
      name: orderDiscountUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to an order discount.
    productWarrantyUid:
      name: productWarrantyUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to product warranty terms
    includeDiscontinuedProductsQuery:
      name: includeDiscontinued
      in: query
      required: false
      schema:
        type: boolean
      description: Include discontinued products
    productPackageSlotUid:
      name: productPackageSlotUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a product package slot
    productPackageComponentUid:
      name: productPackageComponentUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a product package component
    tenantUidQuery:
      description: Reference to a tenant uid
      name: tenantUid
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/UID'
    orderAdditionalNoteUid:
      name: orderAdditionalNoteUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to an orderAdditionalNote
    rmaOrderUid:
      name: rmaOrderUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a rmaOrderUid
    rmaOrderItemUid:
      name: rmaOrderItemUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a rmaOrderItemUid
    rmaOrderStoreUidQuery:
      name: rmaOrderStoreUid
      in: query
      required: false
      schema:
        type: string
      description: Reference to a storeUid
    rmaOrderSupplierUidQuery:
      name: rmaOrderSupplierUid
      in: query
      required: false
      schema:
        type: string
      description: Reference to a supplierUid
    rmaOrderFromDateQuery:
      name: rmaOrderFromDate
      in: query
      required: false
      schema:
        type: string
        format: date
      description: Reference to a date
    rmaOrderToDateQuery:
      name: rmaOrderToDate
      in: query
      required: false
      schema:
        type: string
        format: date
      description: Reference to a date
    giftcardExtensionCode:
      name: extensionCode
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/ExtendedGiftcardExtensionCodeENUM'
      description: Reference to an extension
    StocktakingControlHasDiff:
      name: hasDiff
      description: Only return stocktaking items with diff
      in: query
      required: false
      schema:
        type: boolean
    StocktakingControlHasRegistrations:
      name: hasRegistrations
      description: Only return stocktaking items with registrations
      in: query
      required: false
      schema:
        type: boolean
    printerUid:
      name: printerUid
      in: path
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to  a printer
      required: true
    printerStoreUidQuery:
      name: storeUid
      in: query
      required: false
      schema:
        type: string
      description: Reference to a store
    productAllowPurchaseQuery:
      name: hideNotAllowPurchase
      in: query
      required: false
      schema:
        type: boolean
      description: 'when true, only show products with `allowPurchase` = true'
    discountCode:
      name: discountCode
      in: path
      required: true
      schema:
        type: string
      description: Reference to a discount code
    templateTypeQuery:
      name: templateType
      in: query
      required: false
      schema:
        type: string
      description: Filter on Template Type
    productGroupParentUid:
      name: productGroupParentUid
      in: query
      schema:
        type: string
      description: 'Reference to parent UID, or blank to get the root categories'
      allowEmptyValue: true
    storePrinterUid:
      name: storePrinterUid
      description: Reference to a storePrinterUid
      in: path
      required: true
      schema:
        type: string
    handlingTriggerUid:
      name: handlingTriggerUid
      description: Reference to a handlingTriggerUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
    orderConsentType:
      name: orderConsentType
      in: query
      required: true
      description: Reference to a orderConsent type
      schema:
        $ref: '#/components/schemas/OrderConsentENUM'
    giftcardCvcNumberQuery:
      name: cvc
      in: query
      required: false
      schema:
        type: string
      description: Reference to a giftcard CVC number.
    storeAddressUid:
      name: storeAddressUid
      in: path
      required: true
      schema:
        type: string
      description: Reference to a store address
    receivementStatusQuery:
      name: status
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/ReceivementStatusENUM'
        type: array
      description: Filter by status
    receivementCreatedFromQuery:
      name: createdFrom
      in: query
      required: false
      schema:
        type: string
        format: date-time
      description: CreatedAt GTE
    receivementCreatedToQuery:
      name: createdTo
      in: query
      required: false
      schema:
        type: string
        format: date-time
      description: CreatedAt LTE
    reconciliationDateFromQuery:
      name: from
      in: query
      required: false
      schema:
        type: string
        format: date
      description: Reconcilation date GTE
    reconciliationDateToQuery:
      name: to
      in: query
      required: false
      schema:
        type: string
        format: date
      description: Reconciliation date LTE
    storeCashReconciliationUid:
      name: storeCashReconciliationUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a store cash reconciliation
    cashDepositUid:
      name: cashDepositUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a cash deposit
    posterTemplateUid:
      name: posterTemplateUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a poster template
    subscriberUid:
      name: subscriberUid
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UID'
      description: Reference to a subscriber
    subscriberSubscriptionTypeQuery:
      name: subscriptionType
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/SubscriberSubscriptionType'
      description: Reference to subscription type
    tenantUserUidsQuery:
      name: tenantUserUids
      in: query
      required: false
      schema:
        items:
          $ref: '#/components/schemas/UID'
        type: array
      description: Filter on tenant users
    fromDateRequiredQuery:
      name: from
      in: query
      required: true
      schema:
        type: string
        format: date
      description: 'The start date of the period (inclusive). ISO 8601 date format: YYYY-MM-DD, e.g. 2024-01-01.'
    toDateRequiredQuery:
      name: to
      in: query
      required: true
      schema:
        type: string
        format: date
      description: 'The end date of the period (inclusive). ISO 8601 date format: YYYY-MM-DD, e.g. 2024-01-31.'
    changedSinceQuery:
      name: changedSince
      in: query
      schema:
        type: string
        format: date
      description: Only get items changed since the start of this date.
  requestBodies:
    AccountLoginRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountLoginRequestSchema'
    AccountingRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingRequestSchema'
      description: Accounting Request Body
    AdjustStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AdjustStockRequestSchema'
      description: Adjust stock Request Body
    BatchAdjustStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BatchAdjustStockRequestSchema'
      description: BATCH Adjust stock Request Body
    CashReportUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashReportUpdateRequestSchema'
      description: ''
    CashReportWithdrawalRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashReportWithdrawalRequestSchema'
    CategoryCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CategoryCreateRequestSchema'
    CategoryUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CategoryUpdateRequestSchema'
    TenantDeviceUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceUpdateRequestSchema'
    FlowboxUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxUpdateRequestSchema'
    HandlingActionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingActionCreateRequestSchema'
    HandlingActionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingActionUpdateRequestSchema'
    HandlingUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingUpdateRequestSchema'
      description: Request for updating an orderhandling
    HandlingCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingCreateRequestSchema'
      description: Request for creating  an orderhandling
    MoveStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MoveStockRequestSchema'
      description: Move stock to warehouse specified in request body
    OrderCreateImportRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderCreateImportSchema'
    OrderHandlingCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderHandlingCreateRequestSchema'
    OrderHandlingUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderHandlingUpdateRequestSchema'
    OrderItemActionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemActionCreateRequestSchema'
    OrderItemActionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemActionUpdateRequestSchema'
    EmailNotificationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EmailNotificationRequestSchema'
    PurchaseOrderEmailNotificationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderEmailNotificationRequestSchema'
    PriceBatchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PriceBatchRequestSchema'
      description: Request for Batch Price
      x-tags:
        - Price
    ProductLinkRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductLinkRequestSchema'
    ProductGroupLinkRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductGroupLinkRequestSchema'
    ProductReportRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductReportRequestSchema'
      description: Product Turnover Request Body
    ProductSearchStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductSearchStockRequestSchema'
      x-tags:
        - Product
    ReasonCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReasonCreateRequestSchema'
    ReasonUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReasonUpdateRequestSchema'
    ReceivementCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementCreateRequestSchema'
    ReceivementUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementUpdateRequestSchema'
    OrderDeliveryUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderDeliveryUpdateRequestSchema'
    StockLogSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StockLogSearchRequestSchema'
    StocktakingCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingCreateRequestSchema'
      description: Create Stock counting request
    StocktakingItemListCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingItemListCreateRequestSchema'
    StocktakingRegistrationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingRegistrationRequestSchema'
      description: StocktakingRegistrationRequest
    StocktakingUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingUpdateRequestSchema'
      description: Update Stock counting request
    StorePaymentMethodCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePaymentMethodCreateRequestSchema'
      x-tags:
        - PaymentMethods
    StorePaymentMethodUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePaymentMethodUpdateRequestSchema'
      x-tags:
        - PaymentMethods
    StoreExtensionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreExtensionCreateRequestSchema'
    StoreExtensionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreExtensionUpdateRequestSchema'
    StoreSettlementIssuerUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreSettlementIssuerUpdateRequestSchema'
      x-tags:
        - PaymentMethods
    TenantOnboardRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantOnboardRequestSchema'
    TenantPaymentMethodCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodCreateRequestSchema'
      x-tags:
        - PaymentMethods
    TenantPaymentMethodUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodUpdateRequestSchema'
      x-tags:
        - PaymentMethods
    TenantExtensionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantExtensionCreateRequestSchema'
    TenantExtensionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantExtensionUpdateRequestSchema'
    TenantUserCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserCreateRequestSchema'
    TenantUserUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserUpdateRequestSchema'
    TenantUserRoleAssignmentRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserRoleAssignmentRequestSchema'
      description: Tenant user role assignment request
    TillStatusRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillStatusRequestSchema'
    TransportCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransportCreateRequestSchema'
      description: Transport create Request
    TransportUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransportUpdateRequestSchema'
      description: Transport Update Request
    TurnoverRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TurnoverRequestSchema'
    WebhookCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WebhookCreateRequestSchema'
      description: Webhook Create Request
    WebhookUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WebhookUpdateRequestSchema'
      description: Webhook Update Request
    XZReportPDFRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/XZReportPDFRequestSchema'
    SAFTReportCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SAFTReportCreateRequestSchema'
    TenantPurchaseOrderSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPurchaseOrderSearchSchema'
    TenantOrderSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantOrderSearchSchema'
    TenantOrderReceiptSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantOrderReceiptSearchSchema'
    OrderPrintRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderPrintSchema'
    OrderPDFRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderPDFSchema'
    OrderEmailRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderEmailSchema'
    DeviceRegisterRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceRegisterRequestSchema'
    DeviceUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceSystemInformationUpdateRequestSchema'
    ServiceOrderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderCreateRequestSchema'
    ServiceOrderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderUpdateRequestSchema'
    ServiceOrderItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderItemCreateRequestSchema'
    ServiceOrderItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderItemUpdateRequestSchema'
    ServiceEventCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceEventCreateRequestSchema'
    ServiceEventUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceEventUpdateRequestSchema'
    ServiceHoursCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceHoursCreateRequestSchema'
    ServiceHoursUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceHoursUpdateRequestSchema'
    ServiceTypeCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceTypeCreateRequestSchema'
    ServiceTypeUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceTypeUpdateRequestSchema'
    ServiceStatusUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceStatusUpdateRequestSchema'
    ServiceStatusCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceStatusCreateRequestSchema'
    DeviceAuthorizeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceAuthorizeRequestSchema'
    DeviceTokenRequest:
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/DeviceTokenRequestSchema'
              - $ref: '#/components/schemas/DeprecatedDeviceTokenRequestSchema'
    ProductBarcodePrintRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductBarcodePrintSchema'
    ImportTemplateCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportTemplateCreateRequestSchema'
    ImportTemplateUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportTemplateUpdateRequestSchema'
    ImportLayoutCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportLayoutCreateRequestSchema'
    ImportLayoutUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportLayoutUpdateRequestSchema'
    ImportConversionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportConversionCreateRequestSchema'
    ImportConversionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportConversionUpdateRequestSchema'
    ImportFileRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportFileRequestSchema'
    ProductVariantRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductVariantRequestSchema'
    ProductPropertyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductPropertyRequestSchema'
    ProductTextPropertyUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductTextPropertyUpdateRequestSchema'
    PropertyCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyCreateRequestSchema'
    PropertySearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertySearchRequestSchema'
    PropertyUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyUpdateRequestSchema'
    ProductSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductSearchSchema'
    TenantCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantCreateSchema'
    BrandCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandCreateSchema'
    BrandUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandUpdateSchema'
    CustomerCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerCreateSchema'
    CustomerUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerUpdateSchema'
      description: B2B customer can only be updated by users having admin acces
    CustomerMergeRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerMergeSchema'
      description: The duplicate customer to merge into the path `customerUid` and remove afterward.
    NumberSeriesCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NumberSeriesCreateSchema'
    PricelistCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PricelistCreateRequestSchema'
    PricelistUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PricelistUpdateRequestSchema'
    PriceCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PriceCreateSchema'
    ProductGroupCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductGroupCreateRequestSchema'
    ProductGroupUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductGroupUpdateRequestSchema'
    ProductCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCreateSchema'
    PropertyOptionCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyOptionCreateRequestSchema'
    PropertyOptionUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyOptionUpdateRequestSchema'
    StoreCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreCreateRequestSchema'
    StoreUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreUpdateRequestSchema'
    OrganizationCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganizationCreateRequestSchema'
    OrganizationUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganizationUpdateRequestSchema'
    OrderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderCreateRequestSchema'
    OrderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderUpdateRequestSchema'
    OrderDeliveryCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderDeliveryCreateRequestSchema'
    OrderItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemCreateSchema'
    OrderItemDeliverRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemDeliverRequestSchema'
    OrderSettlementCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderSettlementCreateSchema'
    PurchaseOrderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderCreateSchema'
    PurchaseOrderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderUpdateSchema'
    PurchaseOrderItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderItemCreateSchema'
    PurchaseOrderItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderItemUpdateSchema'
    TillCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillCreateSchema'
    WarehouseCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseCreateRequestSchema'
    WarehouseUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseUpdateRequestSchema'
    SupplierCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierCreateRequestSchema'
    SupplierUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierUpdateRequestSchema'
    SupplierProductCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierProductCreateRequestSchema'
    SupplierProductUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierProductUpdateRequestSchema'
    AccountUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountUpdateSchema'
    FlowboxTokenCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxTokenCreateSchema'
    FlowboxPeripheralCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxPeripheralCreateSchema'
    FlowboxPeripheralUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxPeripheralUpdateSchema'
    TenantUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUpdateSchema'
    TenantAccountAcceptInviteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantAccountAcceptInviteSchema'
    BrandSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandSearchSchema'
    CustomerSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerSearchSchema'
    CustomerExternalSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerExternalSearchSchema'
    CompanyRegistryLookupRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompanyRegistryLookupSchema'
    NumberSeriesUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NumberSeriesUpdateSchema'
    PriceUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PriceUpdateSchema'
    ProductUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductUpdateSchema'
    FlowboxAttachRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxAttachSchema'
    OrderSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderSearchSchema'
    OrderItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemUpdateSchema'
    OrderStatusChangeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderStatusChangeSchema'
    StoreProductSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreProductSearchSchema'
    ReceivementItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementItemCreateRequestSchema'
    ReceivementItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementItemUpdateRequestSchema'
    TillUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillUpdateSchema'
    TillDeviceRegisterRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillDeviceRegisterSchema'
    WarehouseAccessGrantRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseAccessGrantSchema'
    GeneralObjectRequest:
      content:
        application/json:
          schema:
            type: object
    TenantAccountUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantAccountUpdateSchema'
    PayexCallbackRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PayexCallbackSchema'
    VippsCallbackRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VippsCallbackSchema'
    NotificationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralNotificationRequestSchema'
    NotificationSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotificationSearchSchema'
    LinkmobilityCallbackRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkmobilityCallbackRequestSchema'
    ImportFileJobRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportFileJobRequestSchema'
    TenantUserTurnoverRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserTurnoverRequestSchema'
    StoreSearchStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreSearchStockRequestSchema'
    CustomerContactUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactUpdateRequestSchema'
    CustomerContactCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactCreateRequestSchema'
    CustomerAddressCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerAddressCreateRequestSchema'
    CustomerAddressUpdateRequest:
      description: CustomerAddressUpdateRequest
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerAddressUpdateRequestSchema'
    ProductMediaCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductMediaCreateSchema'
    ProductMediaUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductMediaUpdateSchema'
    ReportAbortRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportAbortRequestSchema'
    UpdateWarehouseProductDetailRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateWarehouseProductDetailRequestSchema'
    ProductMediaUploadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductMediaUploadSchema'
    DeliveryProviderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderUpdateRequestSchema'
    DeliveryProviderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderCreateRequestSchema'
    DeliveryProviderMethodUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodUpdateRequestSchema'
    DeliveryProviderMethodCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodCreateRequestSchema'
    DeliverySearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliverySearchRequestSchema'
    ExternalWorkshopCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExternalWorkshopCreateSchema'
    ExternalWorkshopUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExternalWorkshopUpdateSchema'
    CustomerExtensionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerExtensionRequestSchema'
      description: CustomerExtensionRequest
    CustomerContactExtensionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactExtensionRequestSchema'
      description: CustomerContactExtensionRequest
    ProductMediaBatchRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: hl4qbym7r7hv2
                items:
                  $ref: '#/components/schemas/ProductMediaCreateSchema'
            required:
              - items
    ServiceShipmentCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceShipmentCreateSchema'
    ServiceShipmentUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceShipmentUpdateSchema'
    WarehouseStockLogRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseStockLogRequestSchema'
    AccountingFileRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingFileRequestSchema'
    AccountingConfigsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsRequestSchema'
      description: Request body for Accounting Configs
    DeliveryProviderMethodTimeslotCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodTimeslotCreateRequestSchema'
    DeliveryProviderMethodTimeslotUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodTimeslotUpdateRequestSchema'
    WarehouseSearchStockRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseSearchStockRequestSchema'
    TenantPaymentMethodParameterCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodParameterCreateRequestSchema'
    TenantPaymentMethodParameterUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodParameterUpdateRequestSchema'
    WarehouseStockDetailsReportCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseStockDetailsReportCreateRequestSchema'
    InternalPurchaseOrderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderCreateSchema'
    InternalPurchaseOrderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderUpdateSchema'
    InternalPurchaseOrderItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderItemCreateSchema'
    InternalPurchaseOrderItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderItemUpdateSchema'
    InternalPurchaseOrderItemSendRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderItemSendSchema'
    InternalPurchaseOrderItemReceiveRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderItemReceiveSchema'
    GeneratedSkuRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - type
            properties:
              type:
                $ref: '#/components/schemas/GeneratedSkuENUM'
    CurrencyCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - currencyCode
              - exchangeRate
            properties:
              currencyUid:
                $ref: '#/components/schemas/OptionalUID'
              currencyCode:
                type: string
                x-stoplight:
                  id: cgzwi3jy5xb0h
                description: ISO 4217 standard
              exchangeRate:
                type: integer
                x-stoplight:
                  id: maccji8bvkcz3
                description: in cents (2 decimals)
    CurrencyUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              currencyCode:
                type: string
                x-stoplight:
                  id: o1chk5mwjblpz
                description: ISO 4217 standard
              exchangeRate:
                type: integer
                x-stoplight:
                  id: xhq52semddsex
                description: in cents (2 decimals)
    OrderOperationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderOperationRequestSchema'
    ServiceOrderSalesOrderRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - sellerStoreUid
            properties:
              sellerStoreUid:
                $ref: '#/components/schemas/UID'
              salesOrderUid:
                $ref: '#/components/schemas/OptionalUID'
    ConsentCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConsentCreateSchema'
    ConsentUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConsentUpdateSchema'
    CustomerConsentChangeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerConsentChangeSchema'
    ServiceOrderSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderSearchRequestSchema'
    HourlyRateCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - name
              - price
            properties:
              hourlyRateUid:
                $ref: '#/components/schemas/OptionalUID'
              name:
                type: string
                x-stoplight:
                  id: j6es5sa3lfxvy
              price:
                type: integer
                x-stoplight:
                  id: yu1ego2vmesrj
    HourlyRateUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                x-stoplight:
                  id: ipgy240vqqcym
              price:
                type: integer
                x-stoplight:
                  id: ra7nj74auup1s
    LoyaltyMemberSearchRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - query
            properties:
              query:
                type: string
                x-stoplight:
                  id: rgtbq0avoyl48
                description: full mobile number or email
    LoyaltyMemberEnrollRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - mobile
              - storeUid
            properties:
              mobile:
                type: string
                x-stoplight:
                  id: svvbgev0jkydw
              mobileCountryCode:
                type: string
                x-stoplight:
                  id: 2wfd309sp981q
              storeUid:
                $ref: '#/components/schemas/UID'
    LoyaltyMemberEnrollExistingCustomerRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - storeUid
            properties:
              storeUid:
                $ref: '#/components/schemas/UID'
    OrderDiscountCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - origin
            properties:
              discountCode:
                type: string
                x-stoplight:
                  id: z29l0lkfdlz8e
              type:
                $ref: '#/components/schemas/DiscountTypeENUM'
              amount:
                type: integer
                x-stoplight:
                  id: swdtrhrng1qsv
              origin:
                $ref: '#/components/schemas/DiscountOriginENUM'
              name:
                type: string
                x-stoplight:
                  id: la39imltypz1y
              productSkus:
                type: array
                x-stoplight:
                  id: vnrns5o96s578
                items:
                  x-stoplight:
                    id: 57mtukbmem8fi
                  type: string
              validTo:
                type: string
                x-stoplight:
                  id: hbvyoccn51lza
                format: date-time
              maxUsage:
                type: integer
                x-stoplight:
                  id: jz8i6d0rf9vkc
              orderItemUid:
                $ref: '#/components/schemas/UID'
              discountReasonCode:
                type: string
                x-stoplight:
                  id: csttq7vxyamts
              discountReference:
                type: string
                x-stoplight:
                  id: prvsxmcx4argd
              orderDiscountUid:
                $ref: '#/components/schemas/UID'
              campaignUid:
                $ref: '#/components/schemas/UID'
    OrderDiscountUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              discountCode:
                type: string
                x-stoplight:
                  id: pxxa09zm1f7bo
              type:
                $ref: '#/components/schemas/DiscountTypeENUM'
              amount:
                type: integer
                x-stoplight:
                  id: n22zvt3t13c68
              origin:
                $ref: '#/components/schemas/DiscountOriginENUM'
              name:
                type: string
                x-stoplight:
                  id: kupw5s1ykqgcf
              productSkus:
                type: array
                x-stoplight:
                  id: md62o16bzyyi9
                items:
                  x-stoplight:
                    id: leh486ftjgnwd
                  type: string
              validTo:
                type: string
                x-stoplight:
                  id: 7twz8jzqivusv
                format: date-time
              maxUsage:
                type: integer
                x-stoplight:
                  id: 9p1grn4apo8u8
              orderItemUid:
                $ref: '#/components/schemas/OptionalUID'
              discountReasonCode:
                type: string
                x-stoplight:
                  id: btijmewy8rpqz
              discountReference:
                type: string
                x-stoplight:
                  id: ghh1hfhim8h14
    GeneralReportCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralReportCreateRequestSchema'
    CampaignCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignCreateRequestSchema'
    CampaignUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignUpdateRequestSchema'
    CampaignSelectionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignSelectionRequestSchema'
    SupplierPayoutUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierPayoutUpdateRequestSchema'
    SupplierPayoutListRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierPayoutListRequestSchema'
    PaymentCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - amount
            properties:
              amount:
                type: integer
                x-stoplight:
                  id: 5pkdfurueh1zn
              paidAt:
                type: string
                x-stoplight:
                  id: k9zzwn6lfdzae
                format: date-time
              externalReference:
                type: string
                x-stoplight:
                  id: rsynyu2y20rsj
              paymentUid:
                $ref: '#/components/schemas/OptionalUID'
    PaymentBatchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentBatchRequestSchema'
    ProductWarrantyCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - terms
            properties:
              productWarrantyUid:
                $ref: '#/components/schemas/OptionalUID'
              name:
                type: string
                x-stoplight:
                  id: rifc63k57x2j9
              terms:
                type: string
                x-stoplight:
                  id: u4639akud2olo
    ProductWarrantyUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                x-stoplight:
                  id: fp4ezfy4rpsmy
              terms:
                type: string
                x-stoplight:
                  id: bfww2fjrucisz
    ProductPackageSlotCreateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                x-stoplight:
                  id: kpndj6shtjj06
              position:
                type: integer
                x-stoplight:
                  id: nm470ons9alcl
              minComponentsAllowed:
                type: integer
                x-stoplight:
                  id: p9d81oun7w9ka
              maxComponentsAllowed:
                type: integer
                x-stoplight:
                  id: jmdsadbkyxf6q
              productPackageSlotUid:
                $ref: '#/components/schemas/OptionalUID'
    ProductPackageSlotUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
              position:
                type: integer
              minComponentsAllowed:
                type: integer
              maxComponentsAllowed:
                type: integer
    ProductPackageComponentCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - productUid
              - quantity
            properties:
              productUid:
                $ref: '#/components/schemas/UID'
              quantity:
                type: integer
                x-stoplight:
                  id: 94qgyqz6dy9cz
              position:
                type: integer
                x-stoplight:
                  id: adgloqyghiuyl
              specialPrice:
                type: integer
                x-stoplight:
                  id: x8jj11ttei13r
              required:
                type: boolean
                x-stoplight:
                  id: wuj5c5y2u4u79
                default: false
              productPackageComponentUid:
                $ref: '#/components/schemas/OptionalUID'
    ProductPackageComponentUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              productUid:
                $ref: '#/components/schemas/OptionalUID'
              quantity:
                type: integer
                x-stoplight:
                  id: fjad0nym7i2mv
              position:
                type: integer
                x-stoplight:
                  id: hqo46q39uhnro
              specialPrice:
                type: integer
                x-stoplight:
                  id: qr8alm5u9iqiy
              required:
                type: boolean
                x-stoplight:
                  id: typuhl0z5pxf0
    StocktakingItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingItemUpdateSchema'
    ArtSupplierReportRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArtSupplierReportRequestSchema'
    OrderAdditionalNoteCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - note
            properties:
              note:
                type: string
                x-stoplight:
                  id: p07qiexy454dm
              notifications:
                type: array
                items:
                  $ref: '#/components/schemas/SimpleNotificationRequestSchema'
              orderAdditionalNoteUid:
                $ref: '#/components/schemas/OptionalUID'
    PostRequestCombinedDeliveriesPackingList:
      content:
        application/json:
          schema:
            type: object
            required:
              - deliveryUids
            properties:
              deliveryUids:
                type: array
                x-stoplight:
                  id: nfulkxsu3fwm6
                items:
                  $ref: '#/components/schemas/UID'
      description: 'List of deliveryUid used in generating the combined delivery packing list '
    StoreVisitorRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreVisitorRequestSchema'
    CompensationCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationCreateRequestSchema'
    CompensationUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationUpdateRequestSchema'
    CompensationReasonCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationReasonCreateRequestSchema'
    CompensationReasonUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationReasonUpdateRequestSchema'
    GiftcardUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              validTo:
                type: string
                x-stoplight:
                  id: 7lyl9l75z4qsj
                format: date-time
              active:
                type: boolean
                x-stoplight:
                  id: dnue3lbrugt54
                deprecated: true
              note:
                type: string
                x-stoplight:
                  id: 2hrox0wpbpm4d
              extensionCode:
                $ref: '#/components/schemas/GiftcardExtensionENUM'
              status:
                $ref: '#/components/schemas/GiftcardStatusENUM'
    CashControlReportPDFRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashControlReportPDFRequestSchema'
    AccountingConfigsUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsUpdateSchema'
    AccountingConfigsProductGroupRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsProductGroupRequestSchema'
    RMAOrderCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RMAOrderCreateRequestSchema'
    RMAOrderUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RMAOrderUpdateRequestSchema'
    RMAOrderItemCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RMAOrderItemCreateRequestSchema'
    RMAOrderItemUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RMAOrderItemUpdateRequestSchema'
    AssetCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AssetCreateRequestSchema'
    AssetUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AssetUpdateRequestSchema'
    AssetUploadFileRequest:
      content:
        application/octet-stream:
          schema:
            type: string
            format: binary
    CustomerGroupCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - name
            properties:
              name:
                type: string
                x-stoplight:
                  id: h7qqxu0bb8s0s
              customerGroupUid:
                $ref: '#/components/schemas/OptionalUID'
    CustomerGroupUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                x-stoplight:
                  id: n8z33kmx97sx3
    CustomerGroupCustomersUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              addCustomerUids:
                type: array
                x-stoplight:
                  id: b2dmgpx6oa5bi
                items:
                  $ref: '#/components/schemas/UID'
              removeCustomerUids:
                type: array
                x-stoplight:
                  id: bwzliabedga3o
                items:
                  $ref: '#/components/schemas/UID'
    DeviceLinkRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceLinkRequestSchema'
    DeviceCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceCreateRequestSchema'
          examples: {}
    TenantPaymentMethodMappingCreateRequest:
      content:
        application/json:
          schema:
            allOf:
              - type: object
                x-stoplight:
                  id: zq69xsmxqkq88
                properties:
                  tenantPaymentMethodMappingUid:
                    $ref: '#/components/schemas/UID'
              - $ref: '#/components/schemas/GeneralMappingCreateRequestSchema'
    TenantPaymentMethodMappingUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralMappingUpdateRequestSchema'
    DeliveryProviderMethodMappingCreateRequest:
      content:
        application/json:
          schema:
            allOf:
              - type: object
                x-stoplight:
                  id: yf2kpkyg4n48s
                properties:
                  deliveryProviderMethodMappingUid:
                    type: string
                    x-stoplight:
                      id: kuuqyy2178og1
              - $ref: '#/components/schemas/GeneralMappingCreateRequestSchema'
    DeliveryProviderMethodMappingUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GeneralMappingUpdateRequestSchema'
    DeliverySourcingRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliverySourcingRequestSchema'
    DeliveryOptionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryOptionRequestSchema'
    CampaignSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignSearchRequestSchema'
    PrinterCreateRequest:
      content:
        application/json:
          schema:
            allOf:
              - type: object
                required:
                  - type
                  - path
                properties:
                  printerUid:
                    $ref: '#/components/schemas/OptionalUID'
                  type:
                    $ref: '#/components/schemas/PrinterTypeENUM'
                  path:
                    type: string
                    x-stoplight:
                      id: qfjojvxbb9vp2
              - $ref: '#/components/schemas/PrinterUpdateRequestSchema'
    PrinterUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PrinterUpdateRequestSchema'
    PriceSearchRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              query:
                type: string
                x-stoplight:
                  id: 0zwj8h0djgtpu
              brandUids:
                type: array
                x-stoplight:
                  id: espibr66uzher
                items:
                  $ref: '#/components/schemas/UID'
              productGroupUids:
                type: array
                x-stoplight:
                  id: 1i1hzd0fozjcn
                items:
                  $ref: '#/components/schemas/UID'
    ReceiptCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceiptCreateRequestSchema'
    SettlementCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SettlementCreateRequestSchema'
    SettlementRefundCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SettlementRefundCreateRequestSchema'
    ReceiptUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceiptUpdateRequestSchema'
    PurchaseRequestRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              organizationUids:
                type: array
                x-stoplight:
                  id: a7zw7uycpwmpz
                items:
                  $ref: '#/components/schemas/UID'
              storeUids:
                type: array
                x-stoplight:
                  id: bcfoa3lwa8a9m
                items:
                  $ref: '#/components/schemas/UID'
              supplierUids:
                type: array
                x-stoplight:
                  id: yajgh6u9s3tg0
                items:
                  $ref: '#/components/schemas/UID'
              orderStates:
                x-stoplight:
                  id: ragw3c5wutrom
                type: array
                items:
                  $ref: '#/components/schemas/OrderOrderStateENUM'
    SettlementSearchRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              storeUids:
                type: array
                x-stoplight:
                  id: lqya97tahjcju
                items:
                  $ref: '#/components/schemas/UID'
              storePaymentMethodUids:
                type: array
                x-stoplight:
                  id: 0u3snkfd5y48z
                items:
                  $ref: '#/components/schemas/UID'
              settlementCode:
                type: string
                x-stoplight:
                  id: 6wm8jncobmmpu
              createdAt:
                $ref: '#/components/schemas/DateTimeRangeSchema'
              states:
                type: array
                x-stoplight:
                  id: 21ysfsxym2cuk
                items:
                  $ref: '#/components/schemas/SettlementStateENUM'
              statuses:
                type: array
                x-stoplight:
                  id: 0shim0ywtbzx6
                items:
                  $ref: '#/components/schemas/SettlementStatusENUM'
              externalIds:
                type: array
                x-stoplight:
                  id: jaq3cue2owkby
                items:
                  x-stoplight:
                    id: 94v0aw43sbxua
                  type: string
              externalPaymentReferences:
                type: array
                x-stoplight:
                  id: 02bpwg9934cv1
                items:
                  x-stoplight:
                    id: rc4614jsrzvfe
                  type: string
              hasEhfInvoice:
                type: boolean
                x-stoplight:
                  id: gaodpjtvigw71
                description: EHF = "Elektronisk handelsformat"
              hasPaymentBalanceOutstanding:
                type: boolean
                x-stoplight:
                  id: oh2sksfbo5prl
    OrderItemsReservationUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemsReservationUpdateSchema'
    DeviceSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceSearchRequestSchema'
    PrinterSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PrinterRequestSearchSchema'
    ReceiptsReportRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceiptReportSchema'
    CustomerBatchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerBatchRequestSchema'
    ReceiptPrintRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderPrintSchema'
    TransactionTemplateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransactionTemplateRequestSchema'
    TransactionTemplateUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransactionTemplateUpdateSchema'
    ReceiptEmailRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceiptEmailSchema'
      description: ReceiptEmailRequest
    OpenItemsReportRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              storeUids:
                x-stoplight:
                  id: yr4gq8dnmmhf5
                type: array
                items:
                  $ref: '#/components/schemas/UID'
    SOACreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOACreateRequestSchema'
    SOAUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAUpdateRequestSchema'
    SOAAmountCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAAmountCreateRequestSchema'
    SOAAmountUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAAmountUpdateRequestSchema'
    SOAAmountBatchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAAmountBatchRequestSchema'
    TenantUserSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserSearchSchema'
    OrderIntakeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderIntakeRequestSchema'
    TenantRoleCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantRoleCreateRequestSchema'
    TenantRoleUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantRoleUpdateRequestSchema'
    OrderProfraktDeliveryRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderProfraktDeliveryRequestSchema'
      description: Profrakt delivery created for order
    StorePrinterCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePrinterCreateRequestSchema'
    StorePrinterUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePrinterUpdateRequestSchema'
    HandlingTriggerCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingTriggerCreateRequestSchema'
    DeliveryServiceRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryServiceRequestSchema'
    HandlingTriggerUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingTriggerUpdateRequestSchema'
    OrderConsentRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderConsentRequestSchema'
    StoreAddressCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - type
              - companyName
              - address
              - postalCode
              - city
              - countryCode
            properties:
              type:
                $ref: '#/components/schemas/StoreAddressTypeENUM'
              companyName:
                type: string
                x-stoplight:
                  id: jo282xm568hxe
              address:
                type: string
                x-stoplight:
                  id: 56cfxs9ef2zx4
              postalCode:
                type: string
                x-stoplight:
                  id: 1lxru6risnniu
              city:
                type: string
                x-stoplight:
                  id: weujfk5zmea09
              countryCode:
                type: string
                x-stoplight:
                  id: teapndnjv5kok
              email:
                type: string
                x-stoplight:
                  id: 1tn8jqxp2vqbu
              phone:
                type: string
                x-stoplight:
                  id: zgzkadbjc9zwq
              vatNumber:
                type: string
                x-stoplight:
                  id: xnnw3z7cg45k9
              storeAddressUid:
                $ref: '#/components/schemas/OptionalUID'
              default:
                type: boolean
                x-stoplight:
                  id: i5kni7d215k1r
    StoreAddressUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              companyName:
                type: string
                x-stoplight:
                  id: dadb7jdf27h1i
              address:
                type: string
                x-stoplight:
                  id: o626r03a47x8h
              postalCode:
                type: string
                x-stoplight:
                  id: 02ear4ukw83fw
              city:
                type: string
                x-stoplight:
                  id: iuvzfr3fsmrx0
              countryCode:
                type: string
                x-stoplight:
                  id: 1doz3zrw59dzx
              email:
                type: string
                x-stoplight:
                  id: uzodmcde3ex5b
              phone:
                type: string
                x-stoplight:
                  id: d1839vh6g9nme
              vatNumber:
                type: string
                x-stoplight:
                  id: so5xzqan3kupo
              default:
                type: boolean
                x-stoplight:
                  id: pgrjn3lvjk98h
    ProductsSoldNotDeliveredRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductsSoldNotDeliveredSchema'
    AccountingConfigsCustomerRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsCustomerSchema'
    StoreCashReconciliationCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - reconciliationDate
              - tenantUserUid
            properties:
              storeCashReconciliationUid:
                $ref: '#/components/schemas/OptionalUID'
              reconciliationDate:
                type: string
                x-stoplight:
                  id: xgqgkrnnaeskd
                format: date
              tenantUserUid:
                $ref: '#/components/schemas/UID'
              depositAmount:
                type: integer
                x-stoplight:
                  id: 6anx315e3bcuu
              status:
                $ref: '#/components/schemas/StoreCashReconciliationStatusENUM'
              note:
                type: string
                x-stoplight:
                  id: rgsjlyrhqxhic
              cashReports:
                type: array
                x-stoplight:
                  id: mm6lhj8p00jh4
                items:
                  $ref: '#/components/schemas/TillCashReportKey'
              review:
                $ref: '#/components/schemas/StoreCashReconciliationReviewRequestSchema'
    StoreCashReconciliationUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              reconciliationDate:
                type: string
                x-stoplight:
                  id: knudaj0fpn4oi
                format: date
              tenantUserUid:
                $ref: '#/components/schemas/OptionalUID'
              depositAmount:
                type: integer
                x-stoplight:
                  id: xl29nsi4iwq3l
              status:
                $ref: '#/components/schemas/StoreCashReconciliationStatusENUM'
              note:
                type: string
                x-stoplight:
                  id: wi79z6gnrovcx
              cashReports:
                type: array
                x-stoplight:
                  id: 3e43a4a61wcmj
                items:
                  $ref: '#/components/schemas/TillCashReportKey'
              review:
                $ref: '#/components/schemas/StoreCashReconciliationReviewRequestSchema'
    CashDepositUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashDepositRequestSchema'
    CashDepositCreateRequest:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/CashDepositRequestSchema'
              - type: object
                x-stoplight:
                  id: 5kg5b7aoilxvp
                properties:
                  cashDepositUid:
                    $ref: '#/components/schemas/OptionalUID'
    ReasonsReportRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReasonsReportRequestSchema'
    ProfraktPickupLocationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProfraktPickupLocationRequestSchema'
    PostmarkWebhookRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostmarkWebhookSchema'
    TillOperationRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - action
            properties:
              action:
                $ref: '#/components/schemas/TillOperationActionENUM'
    PosterTemplateCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - name
            properties:
              name:
                type: string
                x-stoplight:
                  id: o2qk9mclpj9lm
              html:
                type: string
                x-stoplight:
                  id: 5ior8i89mr62f
                description: template body
              size:
                $ref: '#/components/schemas/PaperSizeEnum'
              orientation:
                $ref: '#/components/schemas/PaperOrientationEnum'
              previewImage:
                type: string
                x-stoplight:
                  id: rql3615p8nr8x
                description: base64 encoded image data
              posterTemplateUid:
                $ref: '#/components/schemas/OptionalUID'
              thousandSeparator:
                $ref: '#/components/schemas/ThousandSeparatorENUM'
    PosterTemplateUpdateRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              name:
                type: string
                x-stoplight:
                  id: b0qsq7bm4ld18
              html:
                type: string
                x-stoplight:
                  id: 7k2tlcgix3t0i
                description: template body
              size:
                $ref: '#/components/schemas/PaperSizeEnum'
              orientation:
                $ref: '#/components/schemas/PaperOrientationEnum'
              previewImage:
                type: string
                x-stoplight:
                  id: y1ht68pzqryhc
                description: base64 encoded image data
              thousandSeparator:
                $ref: '#/components/schemas/ThousandSeparatorENUM'
    PosterPrintRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - products
            properties:
              products:
                type: array
                x-stoplight:
                  id: tkqgu6s1vgvkv
                items:
                  $ref: '#/components/schemas/PosterProductRequest'
    CustomerPrintRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              printerUid:
                $ref: '#/components/schemas/UID'
      description: 'PrinterUid is optional. If no printerUid is defined, Flow Retail will try to find a suitable printer to print on'
    FlowboxAutoRegisterRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxAutoRegisterSchema'
    SubscriberCreateRequest:
      content:
        application/json:
          schema:
            type: object
            required:
              - tenantUserUid
              - subscriptionType
            properties:
              subscriberUid:
                $ref: '#/components/schemas/OptionalUID'
              tenantUserUid:
                $ref: '#/components/schemas/UID'
              subscriptionType:
                $ref: '#/components/schemas/SubscriberSubscriptionType'
    AccountingConfigsAccountnumberRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsAccountnumberRequestSchema'
    AccountingConfigsTreatcodeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsTreatcodeRequestSchema'
    AccountingConfigsVatTypeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsVatTypeRequestSchema'
    AiRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AiRequestSchema'
    OrdersCountRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderCountRequestListSchema'
    SettlementUpdateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderSettlementUpdateSchema'
    VerifyOrderStatusRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              productLineUids:
                type: array
                x-stoplight:
                  id: qgytx5gqaepck
                items:
                  $ref: '#/components/schemas/UID'
    CustomerContactsCreateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactsCreateRequestSchema'
    CustomerContactAddCustomersRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactAddCustomerRequestSchema'
    CustomerContactSearchRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactSearchRequestSchema'
    OrderPaymentMethodsAvailable:
      content:
        application/json:
          schema:
            type: object
            properties:
              orderItemUids:
                type: array
                x-stoplight:
                  id: ygn82bzz3d4tr
                items:
                  $ref: '#/components/schemas/UID'
  responses:
    AccountLoginResponse:
      content:
        application/json:
          schema:
            properties:
              accessToken:
                type: string
              tenantUser:
                $ref: '#/components/schemas/TenantUserResponseSchema'
            required:
              - accessToken
              - tenantUser
            type: object
      description: Example response
    AccountResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              globalRoles:
                type: array
                x-stoplight:
                  id: ijua3ppaq1573
                items:
                  x-stoplight:
                    id: xzwbi55x93xr6
                  type: string
              defaultTenantUid:
                $ref: '#/components/schemas/UID'
              tenants:
                type: array
                items:
                  $ref: '#/components/schemas/TenantUserResponseSchema'
            required:
              - globalRoles
              - defaultTenantUid
              - tenants
      description: User account response
    AccountingReportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingReportResponseSchema'
      description: Response for Accounting report.
      x-tags:
        - Reports
    BrandListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/BrandResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    BrandResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandResponseSchema'
      description: Brand
    CashdrawerStatusSchemaResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashdrawerStatusSchema'
      description: Example response
    CategoryListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/CategoryResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    CategoryResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CategoryResponseSchema'
      description: Example response
    CountryListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/CountrySchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    CountryResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CountrySchema'
      description: Example response
    CustomerListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/CustomerResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: CustomerListResponse
    CustomerExternalListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/CustomerExternalResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: CustomerExternalListResponse
    CustomerResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerResponseSchema'
      description: Example response
    CustomerExportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerExportResponseSchema'
        application/xml:
          schema:
            type: object
            properties: {}
      description: Example response
    DeviceAuthorizationErrorResponse:
      content:
        application/json:
          schema:
            properties:
              error:
                $ref: '#/components/schemas/DeviceAuthorizationStatusENUM'
            required:
              - error
            type: object
      description: Example response
    DeviceAuthorizationResponse:
      content:
        application/json:
          schema:
            type: object
            x-examples:
              example-1:
                device_code: NGU5OWFiNjQ5YmQwNGY3YTdmZTEyNzQ3YzQ1YSA
                expires_in: 1800
                interval: 5
                user_code: BDWP-HQPK
                verification_uri: 'https://authorization-server.com/device'
            properties:
              deviceCode:
                minLength: 1
                type: string
              deviceIdentifier:
                minLength: 1
                type: string
              expires_in:
                type: integer
              interval:
                type: integer
              verificationUri:
                minLength: 1
                type: string
            required:
              - deviceCode
              - deviceIdentifier
              - expires_in
              - interval
              - verificationUri
      description: Example response
    DeviceAuthorizationTokenResponse:
      content:
        application/json:
          schema:
            description: ''
            properties:
              expires:
                type: integer
              token:
                type: string
              token_type:
                type: string
            required:
              - token
              - token_type
              - expires
            type: object
            x-examples:
              example-1:
                access_token: AYjcyMzY3ZDhiNmJkNTY
                expires: 3600
                refresh_token: RjY2NjM5NzA2OWJjuE7c
                scope: create
                token_type: Bearer
      description: Link successfull.
    DeviceInfoResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceInfoResponseSchema'
      description: Example response
    DeviceListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/DeviceResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    DeviceResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceResponseSchema'
      description: Example response
    ZipFileResponse:
      description: ZipFileResponse
      content:
        application/zip:
          schema:
            format: binary
            type: string
    PdfFileResponse:
      description: PDF file
      content:
        application/pdf:
          schema:
            format: binary
            type: string
    FileResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Base64EncodedFileContentSchema'
        application/pdf:
          schema:
            format: binary
            type: string
        text/html:
          schema:
            type: string
        application/octet-stream:
          schema:
            type: string
            format: binary
      description: |-
        Based on the Accept header the response will be base64 json encoded or a raw file.
        application/octet-stream will return a binary file
        application/json will return a json with the file content base64 encoded.
    FlowboxAutoRegisterResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              activationCode:
                type: string
              deviceIdentifier:
                type: string
              flowboxUid:
                $ref: '#/components/schemas/UID'
            required:
              - activationCode
              - deviceIdentifier
              - flowboxUid
      description: 'A Flowbox connected to a store will return a connectionString. A new, unattached Flowbox will return the activationCode.'
    FlowboxListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/FlowboxResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: List of transceivers
    FlowboxPeripheralListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/FlowboxPeripheralResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    FlowboxPeripheralResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxPeripheralResponseSchema'
      description: Return a list of all peripherals registered on a Flowbox.
    FlowboxResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlowboxResponseSchema'
      description: Example response
    FlowboxTokenResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              connectionString:
                type: string
              flowboxUid:
                $ref: '#/components/schemas/UID'
              flowboxToken:
                type: string
            required:
              - connectionString
              - flowboxUid
              - flowboxToken
      description: Example response
    GenericErrorResponse:
      content:
        application/json:
          schema:
            properties:
              code:
                type: string
              message:
                type: string
                description: Error message in the locale you specify in the Accept-Language header or specified on the user
              logId:
                type: string
                x-stoplight:
                  id: p0s3is8b6jict
                description: Log identification. Can be used when reporting errors to Flow Solutions
            type: object
      description: Linking failed. Ther error message will have information about what failed.
    GiftcardDetailsResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GiftcardDetailsResponseSchema'
      description: Example response
    HandlingActionListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/HandlingActionResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    HandlingActionResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingActionResponseSchema'
      description: Example response
    HandlingListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/HandlingResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    HandlingResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingResponseSchema'
      description: Example response
    NullableStockResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NullableStockResponseSchema'
      description: Example response
    NumberSeriesListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/NumberSeriesResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    NumberSeriesResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NumberSeriesResponseSchema'
      description: Number series response
    OrderDeliveryListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/OrderDeliveryResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    OrderDeliveryResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderDeliveryResponseSchema'
      description: Example response
    OrderHandlingListResponse:
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/OrderHandlingResponseSchema'
              orderUid:
                $ref: '#/components/schemas/DeprecatedOptionalUID'
              paging:
                $ref: '#/components/schemas/Paging'
      description: Example response
    OrderHandlingResponse:
      content:
        application/json:
          schema:
            allOf:
              - properties:
                  orderUid:
                    $ref: '#/components/schemas/UID'
                required:
                  - orderUid
                type: object
              - $ref: '#/components/schemas/OrderHandlingResponseSchema'
      description: Example response
    OrderItemActionListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/OrderItemActionResponseSchema'
                type: array
            required:
              - items
      description: Example response
    OrderItemActionResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderItemActionResponseSchema'
      description: Example response
    OrderListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/OrderResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ReceiptListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReceiptResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    OrderResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderResponseSchema'
      description: Example response
    PayexCallbackResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                $ref: '#/components/schemas/PayexCallbackDataSchema'
              message_type:
                type: string
              receipt:
                $ref: '#/components/schemas/PayexCallbackReceiptSchema'
              receipt_strings:
                $ref: '#/components/schemas/PayexCallbackReceiptStringsSchema'
              version:
                type: integer
            required:
              - version
              - message_type
            type: object
      description: Example response
    PaymentMethodListResponse:
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethodResponseSchema'
      description: PaymentMethod list response
      x-tags:
        - PaymentMethods
    PriceBatchResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PriceBatchResponseSchema'
      description: |-
        Response for PriceBatchRequest.
        200: All items in request was processed with no errors
        207: One or more items in request returned an error
      x-tags:
        - Price
    SOAAmountBatchResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAAmountBatchResponseSchema'
      description: |-
        Response for SOAAmountBatchRequest.
        200: All items in request was processed with no errors
        207: One or more items in request returned an error
      x-tags:
        - SOA
    PriceListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/PriceResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    PriceResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PriceResponseSchema'
      description: Example response
    PricelistListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/PricelistResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    SOAListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/SOAResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    PricelistResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PricelistResponseSchema'
      description: Example response
    SOAResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAResponseSchema'
      description: Example response
    SOAAmountResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SOAAmountResponseSchema'
      description: Example response
    ProductGroupListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductGroupResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: List of product groups
    ProductGroupResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductGroupResponseSchema'
      description: Example response
    ProductLinkParentListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductLinkParentResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ProductLinkListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductLinkResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ProductGroupLinkResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductGroupLinkResponseSchema'
      description: Example response
    ProductGroupLinkListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductGroupLinkResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ProductLinkResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductLinkResponseSchema'
      description: Example response
    ProductListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ProductReportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductReportResponseSchema'
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
      description: Response for Product turnover report.
      x-tags:
        - Reports
    ProductResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductResponseSchema'
      description: Example response
    ProductSearchStockResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ProductSearchStockDetailsSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: ''
    PropertyListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/PropertyResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    PropertyOptionListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/PropertyOptionResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    PropertyOptionResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyOptionResponseSchema'
      description: Example response
    PropertyResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PropertyResponseSchema'
      description: Example response
    PurchaseOrderItemListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/PurchaseOrderItemResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    PurchaseOrderItemResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderItemResponseSchema'
      description: Example response
    PurchaseOrderListResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseOrderResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
      description: Example response
    PurchaseOrderResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PurchaseOrderResponseSchema'
      description: Example response
    ReasonListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReasonResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Reason list response
    ReasonResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReasonResponseSchema'
      description: Reason response
    ReceivementItemListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReceivementItemResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ReceivementItemResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementItemResponseSchema'
      description: Example response
    ReceivementListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReceivementResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ReceivementResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceivementResponseSchema'
      description: Example response
    SettlementListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/SettlementResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
      description: Example response
    SettlementResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SettlementResponseSchema'
      description: Example response
    StockListResponse:
      content:
        application/pdf:
          schema:
            format: binary
            type: string
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StockResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
      description: Example response
    StockLogListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StockLogResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StockResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StockResponseSchema'
      description: Example response
    StocktakingControlResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingControlResponseSchema'
      description: Example response
    StocktakingItemListCreateResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StocktakingItemSchema'
                type: array
            required:
              - items
            type: object
      description: Example response
    StocktakingItemListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StocktakingItemSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StocktakingListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StocktakingResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StocktakingRegistrationListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StocktakingRegistrationResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StocktakingResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingResponseSchema'
      description: Example response
    StoreListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StoreResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    OrganizationListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/OrganizationResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StorePaymentMethodListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StorePaymentMethodResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: StorePaymentMethod list response
      x-tags:
        - PaymentMethods
    StorePaymentMethodResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePaymentMethodResponseSchema'
      description: StorePaymentMethod response
      x-tags:
        - PaymentMethods
    StoreProductResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreProductResponseSchema'
      description: Store Product Response
    StoreProductSearchListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StoreProductResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Product Store Search Response
    StoreResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreResponseSchema'
      description: Example response
    OrganizationResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganizationResponseSchema'
      description: Example response
    StoreExtensionListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StoreExtensionResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    StoreExtensionResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreExtensionResponseSchema'
      description: Example response
    StoreSettlementIssuerListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/StoreSettlementIssuerResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: StorePaymentMethodIssuer list response
      x-tags:
        - PaymentMethods
    StoreSettlementIssuerResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreSettlementIssuerResponseSchema'
      description: StorePaymentMethodIssuer response
      x-tags:
        - PaymentMethods
    StoreTurnoverResponse:
      content:
        application/json:
          schema:
            properties:
              dates:
                description: Turnover response grouped by date
                items:
                  $ref: '#/components/schemas/StoreReportTurnoverDateSchema'
                type: array
              stores:
                description: Turnover response grouped by store
                items:
                  $ref: '#/components/schemas/StoreReportTurnoverItemSchema'
                type: array
              total:
                $ref: '#/components/schemas/ReportTurnoverTotalSchema'
            required:
              - items
              - total
            type: object
      description: Turnover response
    SupplierListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/SupplierResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    SupplierProductListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/SupplierProductResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    SupplierProductResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierProductResponseSchema'
      description: Example response
    SupplierResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SupplierResponseSchema'
      description: Example response
    TenantInviteInformationResponse:
      content:
        application/json:
          schema:
            properties:
              tenant:
                properties:
                  name:
                    type: string
                required:
                  - name
                type: object
              user:
                properties:
                  displayName:
                    type: string
                  email:
                    $ref: '#/components/schemas/EmailTYPE'
                  firstname:
                    type: string
                  lastname:
                    type: string
                  mobile:
                    type: string
                  status:
                    type: string
                required:
                  - email
                  - mobile
                  - firstname
                  - lastname
                  - displayName
                  - status
                type: object
            required:
              - tenant
              - user
            type: object
      description: Example response
    TenantListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TenantResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    TenantOnboardResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantOnboardResponseSchema'
      description: Example response
    TenantPaymentMethodListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TenantPaymentMethodResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: TenantPaymentMethod list response
      x-tags:
        - PaymentMethods
    TenantPaymentMethodResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodResponseSchema'
      description: Return a list of all paymentMethods in FlowRetail
      x-tags:
        - PaymentMethods
    TenantResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantResponseSchema'
      description: Example response
    TenantExtensionListResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/TenantExtensionResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
      description: Example response
    TenantExtensionStoreListResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/StoreExtensionStoreResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
      description: Example response
    TenantExtensionResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantExtensionResponseSchema'
      description: Example response
    TenantUserListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TenantUserResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    TenantUserResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserResponseSchema'
      description: Tenant user respose
    TenantUserRoleAssignmentResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantUserRoleAssignmentResponseSchema'
      description: Tenant user role assignment response
    TenantUserRoleAssignmentListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TenantUserRoleAssignmentResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: List of tenant user role assignments
    TenantUserTokenListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TenantUserTokenResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    TillCashReportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillCashReportResponseSchema'
      description: Example response
    TillCashreportListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TillCashReportResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    TillListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/TillResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    TillResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TillResponseSchema'
      description: Example response
    TransportListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/HttpTransportResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Transport List response
    TransportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpTransportResponseSchema'
      description: Transport response
    TurnoverResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReportTurnoverItemSchema'
                type: array
              total:
                $ref: '#/components/schemas/ReportTurnoverTotalSchema'
            required:
              - items
              - total
            type: object
      description: Turnover response
    TurnoverResponseProductGroup:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ReportTurnoverProductGroupResponseSchema'
                type: array
              total:
                $ref: '#/components/schemas/ReportTurnoverTotalSchema'
            required:
              - items
              - total
            type: object
      description: Turnover response for ProductGroup
    VatCodeListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/VatCodeSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    MyWarehouseAccessListResponse:
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/MyWarehouseAccessResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
      description: Example response
    WarehouseAccessResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseAccessResponseSchema'
      description: Example response
    WarehouseListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/WarehouseResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    WarehouseResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WarehouseResponseSchema'
      description: Example response
    WebhookListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/WebhookResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    WebhookResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WebhookResponseSchema'
      description: Example response
    ZReportResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ZReportResponseSchema'
      description: Example response
    HealthStatusResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - status
              - message
              - environment
              - version
              - buildNumber
              - buildDate
              - minimumVersions
            properties:
              status:
                $ref: '#/components/schemas/HealthStatusENUM'
              message:
                type: string
              environment:
                $ref: '#/components/schemas/EnvironmentENUM'
              version:
                type: string
              buildNumber:
                type: string
              buildDate:
                type: string
              minimumVersions:
                type: array
                x-stoplight:
                  id: fcikpk15cfd34
                description: Minimum version requirements for client and assistant apps to check their version compatibility
                items:
                  $ref: '#/components/schemas/MinimumVersionSchema'
    ServiceOrderResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceOrderResponseSchema'
    ServiceOrderListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceOrderResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ServiceEventResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceEventResponseSchema'
    ServiceEventListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceEventResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ServiceHoursResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceHoursResponseSchema'
    ServiceHoursListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceHoursResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ServiceTypeResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceTypeResponseSchema'
    ServiceTypeListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceTypeResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ServiceStatusResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceStatusResponseSchema'
    ServiceStatusListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceStatusResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ImportTemplateListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ImportTemplateResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ImportTemplateResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportTemplateResponseSchema'
    ImportLayoutListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ImportLayoutResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ImportLayoutResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportLayoutResponseSchema'
    ImportConversionListResponse:
      content:
        application/json:
          schema:
            properties:
              items:
                items:
                  $ref: '#/components/schemas/ImportConversionResponseSchema'
                type: array
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
            type: object
      description: Example response
    ImportConversionResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportConversionResponseSchema'
    ImportFilesListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ImportFileResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ImportFileDataResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImportFileDataResponseSchema'
    ImportFileDetailResponse:
      description: Example response
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ImportFileDetailResponseSchema'
              - $ref: '#/components/schemas/ImportFileBasicResponseSchema'
    ProductVariantResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductVariantResponseSchema'
    ProductVariantListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ProductVariantResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ProductAddonListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ProductAddonResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ProductPropertyResponse:
      x-tags:
        - ProductProperties
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductPropertyResponseSchema'
    ProductPropertyListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ProductPropertyResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    NotificationResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotificationResponseSchema'
    NotificationListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 2ta3an3lnih00
                items:
                  $ref: '#/components/schemas/NotificationResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    StockDetailListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: ljsm6ogz7wc6y
                items:
                  $ref: '#/components/schemas/StockDetailResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    TenantUserReportTurnoverResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 888sudebxdxmk
                items:
                  $ref: '#/components/schemas/TenantUserReportTurnoverSchema'
            required:
              - items
    CustomerContactResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactResponseSchema'
    CustomerContactListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 1a8yam6wq9a8o
                items:
                  $ref: '#/components/schemas/CustomerContactResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    CustomerAddressListResponse:
      description: CustomerAddressListResponse
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: gkn2596eeurww
                items:
                  $ref: '#/components/schemas/CustomerAddressResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    CustomerAddressResponse:
      description: CustomerAddressResponse
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerAddressResponseSchema'
    ProductMediaResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductMediaSchema'
    ProductMediaListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 4jdlry6bmyftq
                items:
                  $ref: '#/components/schemas/ProductMediaSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    DeliveryProviderResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderResponseSchema'
    DeliveryProviderMethodResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodResponseSchema'
    DeliveryProviderMethodListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: it2joxzbhqrjc
                items:
                  $ref: '#/components/schemas/DeliveryProviderMethodResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    DeliveryProviderListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: hrtywpx9lzlxv
                items:
                  $ref: '#/components/schemas/DeliveryProviderResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ExternalWorkshopResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExternalWorkshopResponseSchema'
    ExternalWorkshopListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 36lwgrm1nc3nu
                items:
                  $ref: '#/components/schemas/ExternalWorkshopResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ServiceShipmentResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceShipmentResponseSchema'
    ServiceShipmentListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceShipmentResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    WarehouseStockLogListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: yj0ujjobyblkq
                items:
                  $ref: '#/components/schemas/WarehouseStockLogResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    AccountingConfigsResponse:
      description: Response body containing a accounting config entry
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsResponseSchema'
        application/xml:
          schema:
            type: object
            properties: {}
    accountingConfigsListResponse:
      description: Response containing a list of accounting configs entries
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/AccountingConfigsResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    DeliveryProviderMethodTimeslotResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodTimeslotResponseSchema'
    DeliveryProviderMethodTimeslotListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 52rtq23gb2vh4
                items:
                  $ref: '#/components/schemas/DeliveryProviderMethodTimeslotResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    WarehouseProductDetailsResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 4gr4m8sz9exzi
                items:
                  $ref: '#/components/schemas/WarehouseProductDetailsResponseSchema'
    DeliveryProviderMethodTimeslotAvailableListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 3pqgltpru82wi
                items:
                  $ref: '#/components/schemas/DeliveryProviderMethodTimeslotAvailableResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    TenantPaymentMethodParameterResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantPaymentMethodParameterResponseSchema'
    TenantPaymentMethodParameterListResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: gwmq33qrs0xvn
                items:
                  $ref: '#/components/schemas/TenantPaymentMethodParameterResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ReportListResponse:
      description: List of available reports
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                x-stoplight:
                  id: 9mvworwl64ore
                type: array
                items:
                  $ref: '#/components/schemas/ReportResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    ReportResponse:
      description: Report details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportResponseSchema'
    LocaleMetadataResponse:
      description: Locale response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: 7ctv9m4r9nx9i
                items:
                  $ref: '#/components/schemas/LocaleMetadataResponseSchema'
            required:
              - items
    InternalPurchaseOrderResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderResponseSchema'
    InternalPurchaseOrderListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                x-stoplight:
                  id: lvnn6jwxdxfgx
                items:
                  $ref: '#/components/schemas/InternalPurchaseOrderResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
            required:
              - items
              - paging
    InternalPurchaseOrderItemListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: htydvs8dmd10f
                items:
                  $ref: '#/components/schemas/InternalPurchaseOrderItemResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    InternalPurchaseOrderItemResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalPurchaseOrderItemResponseSchema'
    GeneratedSkuResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - generatedSku
              - type
            properties:
              generatedSku:
                type: string
                x-stoplight:
                  id: f03ihr6bw6kjk
              type:
                $ref: '#/components/schemas/GeneratedSkuENUM'
    CurrencyResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CurrencyResponseSchema'
    CurrencyListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: 7h37fhwnric2c
                items:
                  $ref: '#/components/schemas/CurrencyResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CurrencyMetadataResponse:
      description: List all available currencies
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: oykl82gshi5vu
                items:
                  $ref: '#/components/schemas/CurrencyMetadataResponseSchema'
    ConsentResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ConsentSchema'
    ConsentListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: hwlgu6dzn44zk
                items:
                  $ref: '#/components/schemas/ConsentSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CustomerConsentHistoryResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerConsentStatusSchema'
    HourlyRateResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HourlyRateResponseSchema'
    HourlyRateListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: a6zmuvagy45hz
                items:
                  $ref: '#/components/schemas/HourlyRateResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CustomerConsentResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerConsentStatusSchema'
    CustomerExternalResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerExternalResponseSchema'
    LoyaltyDiscountListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: jxgeo49l3m197
                items:
                  $ref: '#/components/schemas/LoyaltyDiscountResponseSchema'
    OrderDiscountResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderDiscountResponseSchema'
    ListOrderDiscountResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: hyn9ac9ml0f5p
                items:
                  $ref: '#/components/schemas/OrderDiscountResponseSchema'
    DeviceUserListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 5z6e0vio8ridh
                items:
                  $ref: '#/components/schemas/DeviceUserResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StoreCustomerDetailsResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreCustomerDetailsResponseSchema'
    LoyaltyMemberListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: spcapdqnbuurj
                items:
                  $ref: '#/components/schemas/LoyaltyMemberResponseSchema'
    ProductWarrantyResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductWarrantySchema'
    CampaignResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CampaignResponseSchema'
    ProductWarrantyListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 8ws4yqsy5qvd6
                items:
                  $ref: '#/components/schemas/ProductWarrantySchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CampaignListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                x-stoplight:
                  id: aoxxs5z2xu38y
                type: array
                items:
                  $ref: '#/components/schemas/CampaignResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CampaignProductListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                x-stoplight:
                  id: 2km3869a1p5ui
                type: array
                items:
                  $ref: '#/components/schemas/CampaignProductSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    SupplierPayoutListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: th42p00jzoh5x
                items:
                  $ref: '#/components/schemas/SupplierPayoutResponseSchema'
    EntityTimestampResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EntityTimestampResponseSchema'
    PaymentListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: jlionz5kpt2rh
                items:
                  $ref: '#/components/schemas/PaymentResponseSchema'
    PaymentResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentResponseSchema'
    DeliverySearchListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 8ixq7wa8ub14w
                items:
                  $ref: '#/components/schemas/DeliverySearchResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    LabelListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: bh892p0gnqvkm
                items:
                  $ref: '#/components/schemas/LabelResponseSchema'
    ProductPackageSlotResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductPackageSlotResponseSchema'
    ProductPackageComponentResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductPackageComponentSchema'
    ProductPackageSlotListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: efjfuvfzgaxot
                items:
                  $ref: '#/components/schemas/ProductPackageSlotResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    ProductPackageComponentListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: rpigei2w8yeiy
                items:
                  $ref: '#/components/schemas/ProductPackageComponentSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StocktakingItemResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StocktakingItemSchema'
    OrderAdditionalNoteResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderAdditionalNoteResponseSchema'
    OrderAdditionalNoteListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: o2q5q996qwea3
                items:
                  $ref: '#/components/schemas/OrderAdditionalNoteResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StoreVisitorListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: s5tdncsxodmnu
                items:
                  $ref: '#/components/schemas/StoreVisitorResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CompensationResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationResponseSchema'
    CompensationListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: qsv1sf1h5bdt2
                items:
                  $ref: '#/components/schemas/CompensationResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CompensationReasonResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CompensationReasonResponseSchema'
    CompensationReasonListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: ras19z9q138j4
                items:
                  $ref: '#/components/schemas/CompensationReasonResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    ExternalReportUrlResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: e8vn725bwvmao
                items:
                  $ref: '#/components/schemas/ExternalReportUrlResponseSchema'
    RMAOrderResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RMAOrderResponseSchema'
    RMAOrderListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: y1aoc5ghe2qq2
                items:
                  $ref: '#/components/schemas/RMAOrderResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    AssetResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AssetResponseSchema'
    AssetListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: czyarytwat822
                items:
                  $ref: '#/components/schemas/AssetResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StocktakingReportResponse:
      content:
        application/pdf:
          schema:
            format: binary
            type: string
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            format: binary
            type: string
      description: Example response
    CustomerGroupResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerGroupResponseSchema'
    CustomerGroupListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: lr2vinwqlfadf
                items:
                  $ref: '#/components/schemas/CustomerGroupResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    DeviceLinkResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeviceLinkResponseSchema'
    TenantPaymentMethodMappingResponse:
      description: Example response
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/GeneralMappingResponseSchema'
              - type: object
                x-stoplight:
                  id: f89zzyn1f3y0g
                required:
                  - tenantPaymentMethodMappingUid
                properties:
                  tenantPaymentMethodMappingUid:
                    $ref: '#/components/schemas/UID'
    TenantPaymentMethodMappingListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/TenantPaymentMethodMappingResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    DeliveryProviderMethodMappingResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryProviderMethodMappingResponseSchema'
    DeliveryProviderMethodMappingListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 5n42cmonizdss
                items:
                  $ref: '#/components/schemas/DeliveryProviderMethodMappingResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    DeliverySourcingResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliverySourcingResponseSchema'
    DeliveryOptionResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeliveryOptionResponseSchema'
    PrinterListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/PrinterResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    PrinterResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PrinterResponseSchema'
      headers: {}
    OrderPaymentMethodListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: otk18ar9olx78
                items:
                  $ref: '#/components/schemas/OrderPaymentMethodResponseSchema'
    AvailableOrderPaymentMethodListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - messages
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/AvailableOrderPaymentMethodResponseSchema'
              messages:
                type: array
                x-stoplight:
                  id: 7ox2ukjr7mw0n
                items:
                  $ref: '#/components/schemas/OrderItemMessageSchema'
    OrderItemAddonListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: 8e75ypy492bty
                items:
                  $ref: '#/components/schemas/OrderItemAddonResponseSchema'
    ReceiptResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReceiptResponseSchema'
    PurchaseRequestListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: i5j7mfzbalvcn
                items:
                  $ref: '#/components/schemas/PurchaseRequestProductSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    AdjustStockBatchResponse:
      description: |-
        The success field indicate how many of the products that where successfully updated. 
        The errors field will contain the products that failed to update.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BatchAdjustStockResponseSchema'
        application/pdf:
          schema:
            type: string
            format: binary
    ReceiptReportResponse:
      description: The response will be a Excel file.
      content:
        application/octet-stream:
          schema:
            $ref: '#/components/schemas/DownloadableFile'
    CustomerBatchResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerBatchResponseSchema'
    EhfInvoiceResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EhfInvoiceResponseSchema'
    MetadataTemplatesResponse:
      description: List templates response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: szpem5lwswg9a
                items:
                  $ref: '#/components/schemas/MetadataTemplateSchema'
    TransactionTemplatesResponse:
      description: TransactionTemplatesResponse
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: tet3fxfrkpnju
                items:
                  $ref: '#/components/schemas/TransactionTemplateResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    TransactionTemplateResponse:
      description: TransactionTemplateResponse
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TransactionTemplateResponseSchema'
    OrderIntakeResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderIntakeResponseSchema'
        application/octet-stream:
          schema:
            $ref: '#/components/schemas/DownloadableFile'
    PermissionMetadataResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: h3l1o82qfabp3
                items:
                  $ref: '#/components/schemas/PermissionMetadataResponseSchema'
    TenantRoleResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TenantRoleResponseSchema'
    TenantRoleListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 6vbl9sd4oymt7
                items:
                  $ref: '#/components/schemas/TenantRoleResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CustomerLoyaltyPointResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerLoyaltyPointResponseSchema'
    OrderLoyaltyPointResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderLoyaltyPointResponseSchema'
    ProfraktDeliveryMethodsListResponse:
      description: Profrakt Delivery Methods List Response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: mvz7gki3o9yn8
                items:
                  $ref: '#/components/schemas/ProfraktDeliveryMethodsListSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    SOAAmountListResponse:
      description: List of SOA Amounts
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: wlzwr188vej94
                items:
                  $ref: '#/components/schemas/SOAAmountResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    OpenItemsReportResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenItemsReportResponseSchema'
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
    StorePrinterResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StorePrinterResponseSchema'
    StorePrinterListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 3ovavkr8tsodg
                items:
                  $ref: '#/components/schemas/StorePrinterResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    HandlingTriggerResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HandlingTriggerResponseSchema'
    HandlingTriggerListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: zwwht0z1ux099
                items:
                  $ref: '#/components/schemas/HandlingTriggerResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    DeliveryServiceListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - information
              - errors
            properties:
              items:
                type: array
                x-stoplight:
                  id: olqxlgdi77bwz
                items:
                  $ref: '#/components/schemas/DeliveryServiceResponseSchema'
              information:
                type: array
                x-stoplight:
                  id: geu7wd64n28cc
                description: Additional information about the services products that should be shown to the seller
                items:
                  x-stoplight:
                    id: 9tfdcw04s2lir
                  type: string
              errors:
                type: array
                x-stoplight:
                  id: dxk9ngnjk7428
                description: Errors which causes the delivery to not be available
                items:
                  x-stoplight:
                    id: he5fteighnoae
                  type: string
    OrderConsentListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: 57m5n5av6jm9o
                items:
                  $ref: '#/components/schemas/OrderConsentResponseSchema'
    StoreAddressListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 1jtok63qxz0fu
                items:
                  $ref: '#/components/schemas/StoreAddressResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StoreAddressResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreAddressResponseSchema'
    SpreadSheetResponse:
      description: SpreadSheet Response
      content:
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: string
            format: binary
    AccountingConfigsFullCustomerResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsFullCustomerResponseSchema'
    StoreCashReconciliationListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/StoreCashReconciliationSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StoreCashReconciliationResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StoreCashReconciliationSchema'
      headers: {}
    CashDepositResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CashDepositSchema'
    ReasonsReportResponse:
      description: Reasons report response with aggregated discount and return reason data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReasonsReportResponseSchema'
          example:
            discountReasons:
              - reasonCode: '06'
                reasonDescription: Campaign
                totalAmount: 1493263
                percentageOfTotal: 98.44
                totalOccurrences: 11
              - reasonCode: '3'
                reasonDescription: Price guarantee
                totalAmount: 17469
                percentageOfTotal: 1.15
                totalOccurrences: 6
            returnReasons:
              - reasonCode: feil
                reasonDescription: Did not work
                totalAmount: 749679
                percentageOfTotal: 93.63
                totalOccurrences: 250
              - reasonCode: ikkeønsket
                reasonDescription: Did not want it
                totalAmount: 50965
                percentageOfTotal: 6.37
                totalOccurrences: 87
    ProfraktPickupLocationListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ProfraktPickupLocationResponseSchema'
    AccountingConfigsCustomerResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsCustomerSchema'
    PosterTemplateResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PosterTemplateSchema'
    PosterTemplateListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: pejle4iad39w7
                items:
                  $ref: '#/components/schemas/PosterTemplateSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    PosterTemplateBaseListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: gghvbm4swevh4
                items:
                  $ref: '#/components/schemas/PosterTemplateBaseSchema'
    OrderStatusResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderStatusResponseSchema'
    PurchaseRequestOrdersListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: e7zecpsv6ddpc
                items:
                  $ref: '#/components/schemas/PurchaseRequestOrderGroupSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    StoreCashreportListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                x-stoplight:
                  id: ew5032580clwo
                type: array
                items:
                  $ref: '#/components/schemas/ExtendedTillCashReportSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    SubscriberListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: wa2opym654log
                items:
                  $ref: '#/components/schemas/SubscriberResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    SubscriberResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubscriberResponseSchema'
    AccountingConfigsAccountnumberResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsAccountnumberResponseSchema'
    AccountingConfigsTreatcodeResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsTreatcodeResponseSchema'
    AccountingConfigsVatTypeResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsVatTypeResponseSchema'
    AccountingConfigsProductGroupListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                type: array
                x-stoplight:
                  id: 0wha2nr9ymuan
                items:
                  $ref: '#/components/schemas/AccountingConfigsProductGroupResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    AccountingConfigsProductGroupResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountingConfigsProductGroupResponseSchema'
    AiResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AiResponseSchema'
    OrdersCountResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrderCountResponseListSchema'
    InternalFlowitStoresResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
              - paging
            properties:
              items:
                x-stoplight:
                  id: jtkypzefzk5jc
                type: array
                items:
                  $ref: '#/components/schemas/InternalFlowitStoreSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    InternalFlowitSmsCountResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - items
            properties:
              items:
                type: array
                x-stoplight:
                  id: lvw1pwuryzrxl
                items:
                  $ref: '#/components/schemas/InternalFlowitSMSCountSchema'
    CustomerContactsListResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              items:
                x-stoplight:
                  id: no1bnm3g4b9on
                type: array
                items:
                  $ref: '#/components/schemas/CustomerContactsWithCustomersResponseSchema'
              paging:
                $ref: '#/components/schemas/Paging'
    CustomerContactsResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactsWithCustomersResponseSchema'
    CustomerContactsCustomerListResponse:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerContactsListSchema'
  schemas:
    AccountUpdateSchema:
      title: AccountUpdateSchema
      x-stoplight:
        id: akvojle41m7ws
      type: object
      x-internal: false
      properties:
        defaultTenantUid:
          $ref: '#/components/schemas/UID'
      required:
        - defaultTenantUid
    AccountingHeaderSchema:
      properties:
        fromDate:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        toDate:
          type: string
      required:
        - storeUid
        - fromDate
        - toDate
      title: AccountingHeaderSchema
      type: object
    AccountingPostSchema:
      properties:
        account:
          type: string
        creditAmount:
          type: integer
        date:
          type: string
        debetAmount:
          type: integer
        text:
          type: string
        vatCode:
          type: string
      required:
        - date
        - account
        - vatCode
        - text
        - debetAmount
        - creditAmount
      title: AccountingPostSchema
      type: object
    AccountingReportResponseSchema:
      title: AccountingReportResponseSchema
      type: object
      properties:
        asset:
          type: array
          items:
            $ref: '#/components/schemas/AccountingPostSchema'
        credit:
          type: array
          items:
            $ref: '#/components/schemas/AccountingPostSchema'
        debet:
          type: array
          items:
            $ref: '#/components/schemas/AccountingPostSchema'
        header:
          $ref: '#/components/schemas/AccountingHeaderSchema'
        ledger:
          type: array
          items:
            $ref: '#/components/schemas/AccountingPostSchema'
        printDate:
          type: string
        tenantName:
          type: string
        organizationName:
          type: string
          x-stoplight:
            id: kt8pm4rketxww
        storeNames:
          type: array
          x-stoplight:
            id: qdjve14rvfawx
          items:
            x-stoplight:
              id: p3alq3tc5x260
            type: string
        totals:
          $ref: '#/components/schemas/AccountingTotalsSchema'
      required:
        - asset
        - credit
        - debet
        - header
        - ledger
        - printDate
        - tenantName
        - organizationName
        - storeNames
        - totals
    AccountingTotalsSchema:
      properties:
        totalAsset:
          type: integer
        totalCredit:
          type: integer
        totalCreditAndAsset:
          type: integer
        totalDebet:
          type: integer
        totalLedger:
          type: integer
      required:
        - totalDebet
        - totalAsset
        - totalCredit
        - totalLedger
        - totalCreditAndAsset
      title: AccountingTotalsSchema
      type: object
    AllowSaleENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | YES | Allow the product to be sold|
        | NO | Do not allow the product to be sold|
        | NOT_BEFORE_DATE | Do not allow the product to be sold before a specified date|
      enum:
        - 'YES'
        - 'NO'
        - NOT_BEFORE_DATE
      title: AllowSaleENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    CustomerSearchScopeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | CUSTOMER | Search for customers|
        | CONTACT | Search for customer contacts|
      x-stoplight:
        id: c51cf6ed0748c
      enum:
        - CUSTOMER
        - CONTACT
      title: CustomerSearchScope
      type: string
      x-internal: false
      x-tags:
        - ENUM
    AllowDeliveryENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | YES | Allow the product to be delivered|
        | NO | Do not allow the product to be delivered|
        | NOT_BEFORE_DATE | Do not allow the product to be delivered before a specified date|
      enum:
        - 'YES'
        - 'NO'
        - NOT_BEFORE_DATE
      title: AllowDeliveryENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    RMAOrderStatusRequestENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NEW | RMA Order is created |
        | WAITING_FOR_APPROVAL | RMA Order request is sent to supplier and awaiting approval|
        | DECLINED_BY_SUPPLIER | RMA Order request have been declined by supplier|
        | SENT_TO_SUPPLIER | Items have been physically sent back to supplier|
      x-stoplight:
        id: bfuvc22ieokoh
      enum:
        - NEW
        - WAITING_FOR_APPROVAL
        - DECLINED_BY_SUPPLIER
        - SENT_TO_SUPPLIER
        - COMPLETE
      title: RMAOrderStatusRequestENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    RMAOrderStatusResponseENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NEW | RMA Order is created |
        | WAITING_FOR_APPROVAL | RMA Order request is sent to supplier and awaiting approval|
        | DECLINED_BY_SUPPLIER | RMA Order request have been declined by supplier|
        | SENT_TO_SUPPLIER | Items have been physically sent back to supplier|
        | COMPLETE | Item stock has been adjusted |
      x-stoplight:
        id: dn0whf627tc1x
      enum:
        - NEW
        - WAITING_FOR_APPROVAL
        - DECLINED_BY_SUPPLIER
        - SENT_TO_SUPPLIER
        - COMPLETE
      title: RMAOrderStatusResponseENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    AllowedOrderActionENUM:
      enum:
        - DELETE
        - OFFER
        - LOYALTY_POINTS
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | DELETE | Order can be deleted|
        | OFFER | Order can be changed to an offer|
        | LOYALTY_POINTS | Order has loyalty points|
    AllowedActionENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | QUANTITY_SOLD | Can change quantity on order item|
        | PRICE_SALE | Can change price on order item|
        | DISCOUNT | Can set discount on order item|
        | SERIALNUMBER | Can set serial number on order item|
        | SERIALNUMBER_REQUIRED | MUST set serial number on order item|
        | CREDIT | Order item can be credited|
        | ADDON | Product on order item has addons|
        | CUSTOMER_REQUIRED | Order item requires customer on settlement|
        | CUSTOMER_MOBILE_REQUIRED | Order item requires customer mobile number on settlement|
        | CUSTOMER_EMAIL_REQUIRED  - Order item requires customer email on settlement|
        | DELIVERY_POSTAL_ADDRESS_REQUIRED | Order item requires delivery address on settlement|
        | INSURANCE | Order item can be insured|
        | DELETE | Order item can be deleted|   
        | DELIVER | Order item can be delivered|
        | PURCHASE | Order item can be marked as purchase from supplier |
        | COST_PRICE | Set cost price on the orderItem |
        | PRODUCT_NAME | Set name of the product on the orderItem |
        | PAYABLE | order item is payable |
        | NEGATIVE_PRICE| Can have negative price |
      enum:
        - QUANTITY_SOLD
        - PRICE_SALE
        - DISCOUNT
        - SERIALNUMBER
        - SERIALNUMBER_REQUIRED
        - CREDIT
        - ADDON
        - CUSTOMER_REQUIRED
        - INSURANCE
        - CUSTOMER_MOBILE_REQUIRED
        - CUSTOMER_EMAIL_REQUIRED
        - DELIVERY_POSTAL_ADDRESS_REQUIRED
        - DELETE
        - DELIVER
        - PURCHASE
        - COST_PRICE
        - PRODUCT_NAME
        - PAYABLE
        - NEGATIVE_PRICE
      title: AllowedActionENUM
      type: string
      x-tags:
        - Order
    EnvironmentENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | PRODUCTION | System is in PRODUCTION mode|
        | STAGE | System is in STAGE mode|
        | DEVELOPER | System is in DEVELOPER mode|
      enum:
        - PRODUCTION
        - STAGE
        - DEVELOPER
      title: EnvironmentENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: 5gq5dcm12q1w5
    AvailabilityTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECEIVE  - Check for receive serial number|
        | DELIVER  - Check for deliver serial number|
      enum:
        - RECEIVE
        - DELIVER
      title: AvailabilityTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    AvailableReasonResponseSchema:
      title: AvailableReasonResponseSchema
      type: object
      x-stoplight:
        id: 5ttc1c2ln7ni9
      required:
        - code
        - description
        - requiresReference
        - reasonUid
      properties:
        code:
          type: string
        description:
          type: string
        requiresReference:
          type: boolean
          x-stoplight:
            id: sor9mi4jlcwvk
        reasonUid:
          $ref: '#/components/schemas/UID'
    AvailableReasonsSchema:
      x-stoplight:
        id: z0bwzfobacjen
      title: AvailableReasonsSchema
      type: object
      properties:
        discount:
          type: array
          items:
            $ref: '#/components/schemas/AvailableReasonResponseSchema'
        return:
          type: array
          items:
            $ref: '#/components/schemas/AvailableReasonResponseSchema'
      required:
        - discount
        - return
    Base64EncodedFileContentSchema:
      title: Base64EncodedFileContentSchema
      type: object
      properties:
        content:
          type: string
          description: ' base64 encoded'
        contentType:
          description: mime type
          type: string
        filename:
          type: string
      required:
        - content
        - contentType
        - filename
    BatchAdjustStockSchema:
      title: BatchAdjustStockSchema
      type: object
      required:
        - productUid
        - reason
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        averageCost:
          description: set new average cost
          type: integer
        quantity:
          description: set new stock quantity
          type: integer
          minimum: 0
        changeQuantity:
          type: integer
          x-stoplight:
            id: ymod3w0nfaytn
          description: make stock adjustment
        reason:
          type: string
        serialnumbers:
          description: the number of serialnumbers must match the quantity/changeQuantity
          type: array
          items:
            type: string
    BrandResponseSchema:
      title: BrandResponseSchema
      x-stoplight:
        id: yfqujcikhfglz
      type: object
      x-tags:
        - Product
      properties:
        brandUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
      required:
        - brandUid
        - createdAt
        - externalId
        - lastModifiedAt
        - name
    BrandUpdateSchema:
      x-stoplight:
        id: wnjorn9dea96q
      title: BrandUpdateSchema
      type: object
      x-tags:
        - Product
      properties:
        externalId:
          type: string
        name:
          type: string
      required:
        - name
    BrandCreateSchema:
      x-stoplight:
        id: j5osp7aqkmk91
      title: BrandCreateSchema
      x-tags:
        - Product
      allOf:
        - $ref: '#/components/schemas/BrandUpdateSchema'
        - properties:
            brandUid:
              $ref: '#/components/schemas/UID'
      type: object
    BrandSearchSchema:
      properties:
        exactMatch:
          type: boolean
        query:
          type: string
      title: BrandSearchSchema
      type: object
      x-tags:
        - Product
    CashdrawerStatusSchema:
      properties:
        status:
          enum:
            - OPEN
            - CLOSED
          type: string
      required:
        - status
      title: CashdrawerStatusSchema
      type: object
    CategoryResponseSchema:
      title: CategoryResponseSchema
      x-stoplight:
        id: d7l3cdmbdd0ad
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ChildCategoryResponseSchema'
        categoryUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        products:
          type: array
          items:
            $ref: '#/components/schemas/StoreProductResponseSchema'
      required:
        - categories
        - categoryUid
        - createdAt
        - externalId
        - lastModifiedAt
        - name
        - parentUid
        - products
    ChildCategoryResponseSchema:
      title: ChildCategoryResponseSchema
      type: object
      properties:
        categoryUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
      required:
        - categoryUid
        - createdAt
        - externalId
        - lastModifiedAt
        - name
    CountrySchema:
      title: CountrySchema
      x-stoplight:
        id: ywfg1cqwt4678
      type: object
      required:
        - code
        - countryUid
        - createdAt
        - currency
        - lastModifiedAt
        - name
        - phonePrefix
        - languageCode
      properties:
        code:
          type: string
        countryUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        currency:
          description: ISO-4217 representation of currency code
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        phonePrefix:
          description: Country phone prefix in format "+nnn"
          type: string
        languageCode:
          type: string
          x-stoplight:
            id: 0apkig4k1p6ub
    ConsentSchema:
      title: ConsentSchema
      x-stoplight:
        id: xkfrfm55pi2po
      type: object
      required:
        - consentUid
        - name
        - description
        - active
        - externalId
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        consentUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
        description:
          type: string
          x-stoplight:
            id: 6qmuikqr420du
        active:
          type: boolean
          x-stoplight:
            id: io1vfb6hv731a
        externalId:
          type: string
          x-stoplight:
            id: 87sosj2lgqcu5
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
          x-stoplight:
            id: in466mifii6l0
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: ed9712rxehy9k
    ConsentCreateSchema:
      title: ConsentCreateSchema
      x-stoplight:
        id: gemhzl7sqefka
      type: object
      required:
        - name
        - active
      properties:
        consentUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
        description:
          type: string
        active:
          type: boolean
        externalId:
          type: string
          x-stoplight:
            id: 6a3zhg17lzwlg
    ConsentUpdateSchema:
      title: ConsentUpdateSchema
      x-stoplight:
        id: jggkio3mfq7po
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        active:
          type: boolean
        externalId:
          type: string
          x-stoplight:
            id: 3894zhi39vd15
    CustomerExportResponseSchema:
      title: CustomerExportResponseSchema
      type: object
      description: Customer information with associated orders and services
      required:
        - customer
        - orders
        - services
      properties:
        customer:
          $ref: '#/components/schemas/CustomerResponseSchema'
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OrderResponseSchema'
        services:
          type: array
          items:
            $ref: '#/components/schemas/ServiceOrderResponseSchema'
    CustomerResponseSchema:
      x-stoplight:
        id: xiy0xgua089cu
      title: CustomerResponseSchema
      type: object
      x-tags:
        - Customer
      description: CustomerResponseSchema
      required:
        - address
        - city
        - companyName
        - countryCode
        - createdAt
        - customerUid
        - customerParentUid
        - customerType
        - email
        - externalId
        - firstname
        - lastModifiedAt
        - lastname
        - mobile
        - postalCode
        - pricelistUid
        - vatNumber
        - origin
        - addresses
        - contacts
        - extensions
        - consents
        - loyaltyId
        - displayName
        - credit
        - paymentTerms
        - internalNote
        - accountManager
        - ehf
        - customerGroupUids
        - defaultStore
        - relevance
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          description: 'ISO 3166-1: 2 characters representation of country'
          type: string
        createdAt:
          format: date-time
          type: string
        customerUid:
          $ref: '#/components/schemas/UID'
        customerParentUid:
          description: 'References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.'
          $ref: '#/components/schemas/OptionalUID'
        customerType:
          $ref: '#/components/schemas/CustomerTypeENUM'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastname:
          type: string
        ledgerNumber:
          type: string
          deprecated: true
          description: Deprecated. Use ledgerNumber in accountingConfigs instead
        mobile:
          type: string
        postalCode:
          type: string
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        origin:
          type: string
          x-stoplight:
            id: x8n33huzh5n2b
        addresses:
          type: array
          x-stoplight:
            id: ycunzx805risu
          items:
            $ref: '#/components/schemas/CustomerAddressResponseSchema'
        contacts:
          type: array
          x-stoplight:
            id: bryo07ezi11mw
          items:
            $ref: '#/components/schemas/CustomerContactResponseSchema'
        extensions:
          type: array
          items:
            $ref: '#/components/schemas/CustomerExtensionResponseSchema'
        consents:
          type: array
          x-stoplight:
            id: i5uzv5mtyfbu2
          items:
            $ref: '#/components/schemas/CustomerConsentStatusSchema'
        loyaltyId:
          type: string
          x-stoplight:
            id: vedcfe362lnp9
        displayName:
          type: string
          x-stoplight:
            id: fb8iqitamb2x8
        credit:
          $ref: '#/components/schemas/CustomerCreditResponseSchema'
        paymentTerms:
          type: integer
          x-stoplight:
            id: fmheupbci4d1v
        internalNote:
          type: string
          x-stoplight:
            id: 7233rilho7xsu
        accountManager:
          $ref: '#/components/schemas/AccountManagerResponseSchema'
        ehfEnabled:
          type: boolean
          x-stoplight:
            id: 7zeoxne7ias7o
          description: 'Deprecated: Use ehf -> enabled instead'
        ehf:
          $ref: '#/components/schemas/CustomerEhfResponseSchema'
        customerGroupUids:
          type: array
          x-stoplight:
            id: so1aronbqk41l
          items:
            $ref: '#/components/schemas/UID'
        defaultStore:
          $ref: '#/components/schemas/CustomerStoreResponseSchema'
        relevance:
          type: number
    CustomerExternalResponseSchema:
      x-stoplight:
        id: 23aqaadngefvc
      title: CustomerExternalResponseSchema
      type: object
      x-tags:
        - Customer
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          description: 'ISO 3166-1: 2 characters representation of country'
          type: string
        createdAt:
          format: date-time
          type: string
        customerUid:
          $ref: '#/components/schemas/UID'
        customerType:
          $ref: '#/components/schemas/CustomerTypeENUM'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastname:
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        mobile:
          type: string
        postalCode:
          type: string
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        origin:
          type: string
      required:
        - address
        - city
        - companyName
        - countryCode
        - createdAt
        - customerUid
        - customerType
        - email
        - externalId
        - firstname
        - lastModifiedAt
        - lastname
        - ledgerNumber
        - mobile
        - postalCode
        - pricelistUid
        - vatNumber
        - origin
    CustomerCreateSchema:
      title: CustomerCreateSchema
      x-stoplight:
        id: gvdhi0o15dik3
      allOf:
        - $ref: '#/components/schemas/CustomerUpdateSchema'
        - type: object
          required:
            - customerType
          properties:
            customerUid:
              $ref: '#/components/schemas/UID'
            customerType:
              $ref: '#/components/schemas/CustomerTypeENUM'
            consents:
              x-stoplight:
                id: f5ghalwj6ecp2
              type: array
              items:
                $ref: '#/components/schemas/CustomerCreateConsentSchema'
    CustomerUpdateSchema:
      x-stoplight:
        id: b2kj35qay674p
      title: CustomerUpdateSchema
      type: object
      x-tags:
        - Customer
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          description: 'ISO 3166-1: 2 characters representation of country'
          type: string
        customerType:
          $ref: '#/components/schemas/CustomerTypeENUM'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        mobile:
          type: string
        postalCode:
          type: string
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        origin:
          type: string
          x-stoplight:
            id: s8hyhih56v1r3
        loyaltyId:
          type: string
          x-stoplight:
            id: 6w26091y1t4o6
        credit:
          $ref: '#/components/schemas/CustomerCreditSchema'
        paymentTerms:
          type: integer
          x-stoplight:
            id: el1yj3tzoa6em
          description: Number of days to calculate due date on invoice
        internalNote:
          type: string
          x-stoplight:
            id: kdszztdnkv1w0
        accountManager:
          $ref: '#/components/schemas/AccountManagerRequestSchema'
        ehfEnabled:
          type: boolean
          x-stoplight:
            id: vjda0tee6bml6
          deprecated: true
          description: This field is deprecated. Use ehf -> enabled instead
        customerGroupUids:
          type: array
          x-stoplight:
            id: jrgb8gxgbtbp1
          items:
            $ref: '#/components/schemas/UID'
        ehf:
          $ref: '#/components/schemas/CustomerEhfSchema'
        defaultStoreUid:
          $ref: '#/components/schemas/UID'
        customerParentUid:
          description: 'References another customer, establishing it as a department under the main customer. Only applicable when customerType is COMPANY.'
          $ref: '#/components/schemas/OptionalUID'
    CustomerMergeSchema:
      title: CustomerMergeSchema
      type: object
      x-tags:
        - Customer
      required:
        - mergeFromCustomerUid
      properties:
        mergeFromCustomerUid:
          $ref: '#/components/schemas/UID'
    CustomerSearchSchema:
      title: CustomerSearchSchema
      type: object
      properties:
        exactMatch:
          type: boolean
        query:
          type: string
        mobile:
          type: string
          x-stoplight:
            id: jon02i97htleq
        email:
          type: string
          x-stoplight:
            id: egtk4awq9jdma
        scope:
          type: array
          x-stoplight:
            id: gbpjaaz8gpemg
          items:
            $ref: '#/components/schemas/CustomerSearchScopeENUM'
        customerTypes:
          type: array
          x-stoplight:
            id: y62qmecmlizvw
          items:
            $ref: '#/components/schemas/CustomerTypeENUM'
        vatNumber:
          type: string
          x-stoplight:
            id: 94c07o8ebghqi
        storeUid:
          $ref: '#/components/schemas/UID'
        customerParentUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
          x-stoplight:
            id: 5sib5vaw439q6
    CustomerExternalSearchSchema:
      title: CustomerExternalSearchSchema
      type: object
      properties:
        query:
          type: string
    CompanyRegistryLookupSchema:
      title: CompanyRegistryLookupSchema
      type: object
      required:
        - identifier
      properties:
        identifier:
          type: string
          minLength: 1
          description: 'Organization number, VAT number, or similar company identifier'
          example: '979683359'
        countryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code. Falls back to tenant country if omitted.
          example: 'NO'
    CustomerTypeENUM:
      enum:
        - COMPANY
        - PERSON
        - B2B
      title: CustomerTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    DeviceResponseSchema:
      title: DeviceResponseSchema
      x-stoplight:
        id: 2l4ikkucacllb
      type: object
      required:
        - createdAt
        - createdBy
        - deviceUid
        - identifier
        - lastModifiedAt
        - lastModifiedBy
        - lastActivityAt
        - lastTenantUserUid
        - name
        - systemInformation
        - status
        - store
        - deviceLinkCode
        - lastOrderUid
        - till
        - appCode
        - appVersion
        - settings
        - printers
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
          x-stoplight:
            id: pnmfnyo0zr1ef
        deviceUid:
          $ref: '#/components/schemas/UID'
        identifier:
          type: string
          description: A unique client identifier. This will be set when the client is linked.
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: t6u6s24msxm68
        lastActivityAt:
          type: string
          x-stoplight:
            id: f3gtozkaw3utx
          description: 'The timestamp indicating the most recent date and time when the device registered any activity. '
          format: date-time
          nullable: true
        lastTenantUserUid:
          type: string
          x-stoplight:
            id: 4cp8qtxnci4vr
          description: The tenantUserUid who interacted with this device most recently
        name:
          type: string
        systemInformation:
          type: string
          description: 'Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers'
        status:
          $ref: '#/components/schemas/DeviceStatusENUM'
        store:
          $ref: '#/components/schemas/DeviceStoreResponseSchema'
        deviceLinkCode:
          type: string
          x-stoplight:
            id: 3y5w5dh6i6woe
          description: The code that should be used to link the device to an app
        lastOrderUid:
          $ref: '#/components/schemas/OptionalUID'
        till:
          $ref: '#/components/schemas/DeviceTillResponseSchema'
        appCode:
          $ref: '#/components/schemas/DeviceAppCodeENUM'
        appVersion:
          type: string
          x-stoplight:
            id: f1zkfdvc19vii
        settings:
          type: array
          x-stoplight:
            id: qryk5hcfyzucy
          items:
            $ref: '#/components/schemas/GeneralParameterResponseSchema'
        printers:
          type: array
          x-stoplight:
            id: rs5hzcqbihr2o
          items:
            $ref: '#/components/schemas/BasicPrinterResponseSchema'
    DeviceUserResponseSchema:
      title: DeviceUserResponseSchema
      x-stoplight:
        id: zkw1nxbri109g
      type: object
      required:
        - accountType
        - displayName
        - firstname
        - lastAccessed
        - lastname
        - tenantUserUid
        - userCode
        - languageCode
      properties:
        accountType:
          $ref: '#/components/schemas/TenantAccountTypeENUM'
        displayName:
          type: string
        firstname:
          type: string
        lastAccessed:
          format: date-time
          type: string
        lastname:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        userCode:
          type: string
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
    DeviceAuthorizationStatusENUM:
      enum:
        - slow_down
        - authorization_pending
        - access_denied
        - expired_token
      title: DeviceAuthorizationStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    DeviceInfoResponseSchema:
      description: ' Info for a device'
      x-stoplight:
        id: zysm26fn3e0ni
      title: DeviceInfoResponseSchema
      type: object
      required:
        - availablePaymentMethods
        - zeroAmountPaymentMethod
        - availableReasons
        - deviceIdentifier
        - deviceUid
        - storeInfo
        - tenantInfo
        - tillInfo
        - currencyDenominations
        - name
        - settings
        - printers
      properties:
        availablePaymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/DevicePaymentMethodResponseSchema'
        zeroAmountPaymentMethod:
          $ref: '#/components/schemas/DevicePaymentMethodResponseSchema'
        availableReasons:
          $ref: '#/components/schemas/AvailableReasonsSchema'
        deviceIdentifier:
          type: string
        deviceUid:
          $ref: '#/components/schemas/UID'
        storeInfo:
          $ref: '#/components/schemas/StoreResponseSchema'
        tenantInfo:
          $ref: '#/components/schemas/TenantResponseSchema'
        tillInfo:
          $ref: '#/components/schemas/TillResponseSchema'
        currencyDenominations:
          type: array
          items:
            $ref: '#/components/schemas/DeviceCurrencyDenominationSchema'
        name:
          type: string
        settings:
          type: array
          x-stoplight:
            id: oj2wmkesww89x
          items:
            $ref: '#/components/schemas/GeneralParameterResponseSchema'
        printers:
          type: array
          x-stoplight:
            id: kaivj7n45ha1g
          items:
            $ref: '#/components/schemas/BasicPrinterResponseSchema'
    DeviceCurrencyDenominationSchema:
      title: DeviceCurrencyDenominationSchema
      type: object
      properties:
        currencyCode:
          type: string
        denomination:
          type: integer
        material:
          $ref: '#/components/schemas/CurrencyDenominationMaterialENUM'
      required:
        - currencyCode
        - denomination
        - material
      x-stoplight:
        id: eaocicwmuqh34
    CashDetailSchema:
      title: CashDetailSchema
      x-stoplight:
        id: oe95ae5kamjs8
      type: object
      properties:
        currencyCode:
          type: string
        denomination:
          type: integer
        material:
          $ref: '#/components/schemas/CurrencyDenominationMaterialENUM'
        quantityCounted:
          type: integer
        amount:
          type: integer
      required:
        - currencyCode
        - denomination
        - material
        - quantityCounted
        - amount
    CurrencyDenominationMaterialENUM:
      description: ''
      enum:
        - COIN
        - NOTE
      title: CurrencyDenominationMaterialENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: o6vjdqfh56jzv
    DevicePaymentMethodResponseSchema:
      title: DevicePaymentMethodResponseSchema
      type: object
      required:
        - allowRefund
        - allowSale
        - allowCashback
        - allowPrepayment
        - name
        - parameters
        - paymentCode
        - storePaymentMethodUid
        - requirements
        - settlementCode
        - visibility
        - position
        - description
        - amountInput
        - useRounding
        - receiptText
      properties:
        allowRefund:
          type: boolean
        allowSale:
          type: boolean
        allowCashback:
          type: boolean
          x-stoplight:
            id: i4xdfj1ekvlqz
        allowAmount:
          type: boolean
          deprecated: true
        allowPrepayment:
          type: boolean
          x-stoplight:
            id: 61xbz2aqxm4lz
        name:
          type: string
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/AvailablePaymentMethodParametersResponseSchema'
        paymentCode:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        requirements:
          $ref: '#/components/schemas/PaymentMethodRequirementResponseSchema'
        settlementCode:
          type: string
          x-stoplight:
            id: rlxdk57u3t79i
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        position:
          type: integer
          x-stoplight:
            id: h1qvyhcv6pdx9
        description:
          type: string
          x-stoplight:
            id: kwosy8hd5z5zl
          description: from TenantPaymentMethod
        receiptText:
          type: string
          maxLength: 500
          x-stoplight:
            id: kwosy8hd5z5z2
          description: from TenantPaymentMethod; text printed on the receipt when this payment method is used
        amountInput:
          $ref: '#/components/schemas/TenantPaymentMethodAmountInputENUM'
        useRounding:
          type: boolean
          x-stoplight:
            id: 7hmtut4rvs0z3
    OrderPaymentMethodResponseSchema:
      title: OrderPaymentMethodResponseSchema
      x-stoplight:
        id: 963r8ko2vrgqt
      type: object
      required:
        - allowCashback
        - allowPrepayment
        - name
        - description
        - parameters
        - paymentCode
        - storePaymentMethodUid
        - requirements
        - settlementCode
        - visibility
        - position
        - minimumPaymentAmount
        - amountInput
        - useRounding
        - receiptText
      properties:
        allowCashback:
          type: boolean
        allowAmount:
          type: boolean
          deprecated: true
        allowPrepayment:
          type: boolean
          x-stoplight:
            id: o4pnm4wgrzwyc
        name:
          type: string
        description:
          type: string
          x-stoplight:
            id: 252zsyvxslzv1
        receiptText:
          type: string
          maxLength: 500
          description: from TenantPaymentMethod; text printed on the receipt when this payment method is used
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/AvailablePaymentMethodParametersResponseSchema'
        paymentCode:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        requirements:
          $ref: '#/components/schemas/PaymentMethodRequirementResponseSchema'
        requireExclusiveUse:
          type: boolean
          deprecated: true
        settlementCode:
          type: string
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        position:
          type: integer
        minimumPaymentAmount:
          type: integer
          x-stoplight:
            id: o0k5d79i0xp87
        amountInput:
          $ref: '#/components/schemas/TenantPaymentMethodAmountInputENUM'
        useRounding:
          type: boolean
          x-stoplight:
            id: nb0vwgvui0hxe
    AvailableOrderPaymentMethodResponseSchema:
      title: AvailableOrderPaymentMethodResponseSchema
      x-stoplight:
        id: 2ueb0s3vylw5t
      type: object
      required:
        - allowCashback
        - allowPrepayment
        - name
        - description
        - parameters
        - paymentCode
        - storePaymentMethodUid
        - requirements
        - settlementCode
        - visibility
        - position
        - minimumPaymentAmount
        - amountInput
        - useRounding
        - receiptText
      properties:
        allowCashback:
          type: boolean
        allowPrepayment:
          type: boolean
        name:
          type: string
        description:
          type: string
        receiptText:
          type: string
          maxLength: 500
          description: from TenantPaymentMethod; text printed on the receipt when this payment method is used
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/AvailablePaymentMethodParametersResponseSchema'
        paymentCode:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        requirements:
          $ref: '#/components/schemas/PaymentMethodRequirementResponseSchema'
        settlementCode:
          type: string
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        position:
          type: integer
        minimumPaymentAmount:
          type: integer
        amountInput:
          $ref: '#/components/schemas/TenantPaymentMethodAmountInputENUM'
        useRounding:
          type: boolean
    DeviceStatusENUM:
      enum:
        - ACTIVE
        - BLOCKED
        - READY_TO_LINK
      title: DeviceAuthorizationStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      description: |-
        | Enum | Description|
        |-----|-----|
        |READY_TO_LINK | The device is ready to a physical device through the link endpoint |
        |ACTIVE| The device is linked and active |
        |BLOCKED| The device is linked, but blocked for usage |
    EmailTYPE:
      x-stoplight:
        id: 571cfaddce288
      title: Email
      type: string
      x-internal: false
      x-tags:
        - TYPE
    FlowboxResponseSchema:
      title: FlowboxResponseSchema
      x-stoplight:
        id: enehbh0spf6kj
      type: object
      x-internal: true
      x-tags:
        - Flowbox
      properties:
        createdAt:
          format: date-time
          type: string
        flowboxUid:
          $ref: '#/components/schemas/UID'
        identifier:
          type: string
        lastConnected:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        status:
          $ref: '#/components/schemas/FlowboxStatusENUM'
        version:
          type: string
      required:
        - createdAt
        - flowboxUid
        - identifier
        - lastConnected
        - lastModifiedAt
        - name
        - status
        - version
    FlowboxAttachSchema:
      properties:
        activationCode:
          type: string
      title: FlowboxAttachSchema
      type: object
    FlowboxPeripheralResponseSchema:
      title: FlowboxPeripheral
      x-stoplight:
        id: j8qf3o8954m1o
      type: object
      x-internal: true
      x-tags:
        - Flowbox
      required:
        - flowboxPeripheralUid
        - flowboxUid
        - identifier
        - name
        - status
        - type
        - defaultLabelTemplate
        - loadedLabelSize
      properties:
        error:
          $ref: '#/components/schemas/FlowboxPeripheralErrorENUM'
        flowboxPeripheralUid:
          $ref: '#/components/schemas/UID'
        flowboxUid:
          $ref: '#/components/schemas/UID'
        identifier:
          type: string
        name:
          type: string
        status:
          $ref: '#/components/schemas/FlowboxPeripheralStatusENUM'
        type:
          $ref: '#/components/schemas/FlowboxPeripheralTypeENUM'
        defaultLabelTemplate:
          $ref: '#/components/schemas/LabelENUM'
        loadedLabelSize:
          $ref: '#/components/schemas/LabelSizeENUM'
    FlowboxPeripheralCreateSchema:
      title: FlowboxPeripheralCreateSchema
      type: object
      x-internal: true
      x-tags:
        - Flowbox
      required:
        - identifier
        - type
      properties:
        identifier:
          type: string
        name:
          type: string
        type:
          $ref: '#/components/schemas/FlowboxPeripheralTypeENUM'
        peripheralUid:
          $ref: '#/components/schemas/UID'
        status:
          $ref: '#/components/schemas/FlowboxPeripheralStatusENUM'
        defaultLabelTemplate:
          $ref: '#/components/schemas/LabelENUM'
        loadedLabelSize:
          $ref: '#/components/schemas/LabelSizeENUM'
    FlowboxPeripheralUpdateSchema:
      title: FlowboxPeripheralUpdateSchema
      type: object
      x-internal: true
      x-tags:
        - Flowbox
      x-stoplight:
        id: e4f4db6ed28a2
      required:
        - type
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/FlowboxPeripheralTypeENUM'
        status:
          $ref: '#/components/schemas/FlowboxPeripheralStatusENUM'
        defaultLabelTemplate:
          $ref: '#/components/schemas/LabelENUM'
        loadedLabelSize:
          $ref: '#/components/schemas/LabelSizeENUM'
    FlowboxPeripheralErrorENUM:
      enum:
        - PAPERJAM
        - BONG_OUT_OF_PAPER
        - A4_OUT_OF_PAPER
        - NO_REPLY_FROM_DEVICE
      title: FlowboxPeripheralErrorENUM
      type: string
      x-tags:
        - ENUM
    FlowboxStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        |ONLINE| Connected and ready for use.|
        |OFFLINE| No connection to flowbox.|
        |ERROR| Identified error state on flowbox, needs to be looked at by technical support staff at Flow Solutions.|
        |DISABLED| Disabled by user.|
        |REMOVED| Removed by user.|
      title: FlowboxStatusENUM
      type: string
      x-internal: true
      x-tags:
        - ENUM
      enum:
        - ONLINE
        - OFFLINE
        - ERROR
        - DISABLED
        - REMOVED
      x-stoplight:
        id: 63add1ea8bc12
    FlowboxPeripheralStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | AVAILABLE| Connected and ready for use.|
        | UNAVAILABLE| Temporarily no connection to peripheral.|
        | ERROR| Identified error state on peripheral, needs to be looked at by technical support staff at Flow Solutions.|
        | DISABLED| Disabled by user.|
      title: FlowboxPeripheralStatusENUM|
      type: string
      x-internal: true
      x-tags:
        - ENUM
      enum:
        - AVAILABLE
        - UNAVAILABLE
        - ERROR
        - DISABLED
    FlowboxPeripheralTypeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | CASH_DRAWER | ICD Cash Drawer S3-423 USB|
        | RECEIPT_PRINTER | Thermal printer|
        | REGULAR_PRINTER | Standard A4 printer|
        | BARCODE_PRINTER | Barcode printer|
      enum:
        - CASH_DRAWER
        - RECEIPT_PRINTER
        - REGULAR_PRINTER
        - BARCODE_PRINTER
      title: FlowboxPeripheralTypeENUM
      type: string
      x-internal: true
      x-tags:
        - ENUM
    FlowboxUpdateRequestSchema:
      title: FlowboxUpdateRequestSchema
      type: object
      x-stoplight:
        id: kpipwsmorocww
      properties:
        name:
          type: string
        status:
          $ref: '#/components/schemas/FlowboxStatusENUM'
      required:
        - name
    GiftcardDetailsResponseSchema:
      title: GiftcardDetailsResponseSchema
      type: object
      x-stoplight:
        id: b5qnbprybdnmi
      required:
        - balance
        - cardId
        - cardNumber
        - validTo
        - brandId
        - brandName
        - issuerName
        - note
        - status
        - cvcRequired
        - legacyCardNumber
      properties:
        active:
          type: boolean
          deprecated: true
        balance:
          type: integer
        cardId:
          type: integer
        cardNumber:
          type: string
        validTo:
          type: string
          format: date-time
          nullable: true
        brandId:
          type: integer
          x-stoplight:
            id: 3ucms0hk7qe9h
        brandName:
          type: string
          x-stoplight:
            id: xfgl6z1y2bj8v
        issuerName:
          type: string
          x-stoplight:
            id: bflnhzwdjkkbv
        note:
          type: string
          x-stoplight:
            id: phz29vowb0gee
        status:
          $ref: '#/components/schemas/GiftcardStatusENUM'
        cvcRequired:
          type: boolean
          x-stoplight:
            id: roleeosrsizpc
        legacyCardNumber:
          type: string
          x-stoplight:
            id: c2mci2om0ns5m
    HandlingActionCreateRequestSchema:
      properties:
        handlingActionUid:
          $ref: '#/components/schemas/UID'
        active:
          type: boolean
          x-stoplight:
            id: 73yu1zau7clj5
        allowComment:
          type: boolean
          x-stoplight:
            id: j8sxu2yvruorj
        name:
          type: string
          x-stoplight:
            id: ixd3id4z5cc5i
          maxLength: 20
        storeUid:
          $ref: '#/components/schemas/UID'
      required:
        - active
        - allowComment
        - name
      title: HandlingActionCreateRequestSchema
      type: object
    HandlingActionUpdateRequestSchema:
      title: HandlingActionUpdateRequestSchema
      type: object
      x-stoplight:
        id: pryez2dfw31k4
      properties:
        active:
          type: boolean
        allowComment:
          type: boolean
        name:
          type: string
          maxLength: 20
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
      required:
        - active
        - allowComment
        - name
    HandlingActionResponseSchema:
      allOf:
        - $ref: '#/components/schemas/HandlingActionUpdateRequestSchema'
        - type: object
          properties:
            createdAt:
              format: date-time
              type: string
            createdBy:
              type: string
            handlingActionUid:
              $ref: '#/components/schemas/UID'
            lastModifiedAt:
              format: date-time
              type: string
            lastModifiedBy:
              type: string
            storeUid:
              $ref: '#/components/schemas/OptionalUID'
          required:
            - createdAt
            - createdBy
            - handlingActionUid
            - lastModifiedAt
            - lastModifiedBy
            - storeUid
      title: HandlingActionResponseSchema
      x-stoplight:
        id: mtnae5zvzm3wb
    HandlingCreateRequestSchema:
      allOf:
        - properties:
            handlingUid:
              $ref: '#/components/schemas/UID'
          type: object
        - $ref: '#/components/schemas/HandlingUpdateRequestSchema'
      x-stoplight:
        id: i41z88bul45ei
      title: HandlingCreateRequestSchema
    HandlingUpdateRequestSchema:
      description: Request for creating or updating an orderhandling
      title: HandlingUpdateRequestSchema
      type: object
      x-stoplight:
        id: ou1i76ul08n6l
      required:
        - active
        - description
        - name
      properties:
        active:
          type: boolean
        description:
          type: string
        name:
          maxLength: 20
          type: string
        requireSerialnumberForComplete:
          type: boolean
          x-stoplight:
            id: jv9i7fdkuvmmb
        templateUidForComplete:
          $ref: '#/components/schemas/OptionalUID'
    HandlingResponseSchema:
      title: HandlingResponseSchema
      type: object
      required:
        - active
        - createdAt
        - createdBy
        - description
        - handlingUid
        - lastModifiedAt
        - lastModifiedBy
        - name
        - requireSerialnumberForComplete
        - templateUidForComplete
      properties:
        active:
          type: boolean
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        description:
          type: string
        handlingUid:
          $ref: '#/components/schemas/UID'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        name:
          maxLength: 20
          type: string
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/HandlingTriggerResponseSchema'
        requireSerialnumberForComplete:
          type: boolean
          x-stoplight:
            id: 7jeptmhpg0j9p
          description: All products that require serialnumber must have a serial number set before this handling can be set to `COMPLETE`
        templateUidForComplete:
          $ref: '#/components/schemas/OptionalUID'
    HandlingStateENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Handling has not been started. |
        | IN_PROGRESS | Handling is in progress. |
        | ON_HOLD | Handling is paused (on hold). |
        | COMPLETE | Handling is complete. |
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - ON_HOLD
        - COMPLETE
      title: HandlingStateENUM
      type: string
      x-stoplight:
        id: 6veg7fq8w04m4
    DeliveryStateENUM:
      enum:
        - NOT_DELIVERED
        - IN_TRANSIT
        - DELIVERED
        - NEW
        - STARTED
      title: DeliveryStateENUM
      type: string
    HandlingTriggerENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | AUTO_PRINT_PICKUP_LABELS| Auto-print pickup labels when order is parked or confirmed|
        | SET_EXPIRY_DATE| Set expiry date on order|
      enum:
        - AUTO_PRINT_PICKUP_LABELS
        - SET_EXPIRY_DATE
      title: HandlingTriggerENUM
      type: string
      x-internal: false
      x-stoplight:
        id: yxbmvhceh43vg
      x-tags:
        - ENUM
    HandlingTriggerUpdateRequestSchema:
      title: HandlingTriggerUpdateRequestSchema
      type: object
      x-stoplight:
        id: sjeoodh1dl5wi
      required:
        - active
        - trigger
        - state
      properties:
        active:
          type: boolean
        trigger:
          $ref: '#/components/schemas/HandlingTriggerENUM'
        state:
          $ref: '#/components/schemas/HandlingStateENUM'
        value:
          type: string
          x-stoplight:
            id: b33stwobo1vgm
        handlingTriggerUid:
          $ref: '#/components/schemas/UID'
    HandlingTriggerCreateRequestSchema:
      title: HandlingTriggerCreateRequestSchema
      x-stoplight:
        id: f6esintosqcsc
      type: object
      required:
        - active
        - trigger
        - state
      properties:
        active:
          type: boolean
        trigger:
          $ref: '#/components/schemas/HandlingTriggerENUM'
        state:
          $ref: '#/components/schemas/HandlingStateENUM'
        value:
          type: string
        handlingTriggerUid:
          $ref: '#/components/schemas/UID'
    HandlingTriggerResponseSchema:
      title: HandlingTriggerResponseSchema
      x-stoplight:
        id: qvvcpoju3h4so
      type: object
      required:
        - active
        - trigger
        - state
        - value
        - handlingTriggerUid
      properties:
        active:
          type: boolean
        trigger:
          $ref: '#/components/schemas/HandlingTriggerENUM'
        state:
          $ref: '#/components/schemas/HandlingStateENUM'
        value:
          type: string
        handlingTriggerUid:
          $ref: '#/components/schemas/UID'
    HealthStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        |OK | Evertyhing is fine|
        |ERROR | Something critical is wrong.|
      title: HealthStatusENUM
      type: string
      x-internal: true
      x-tags:
        - ENUM
      x-stoplight:
        id: 8dg1ku2nbggqg
      enum:
        - OK
        - ERROR
    LedgerTypeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        |LEDGER | Ledger |
        |GENERAL_LEDGER | General ledger |
        |CUSTOMER_LEDGER | Customer ledger |
      enum:
        - LEDGER
        - GENERAL_LEDGER
        - CUSTOMER_LEDGER
      title: LedgerTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    UpdateWarehouseProductDetailRequestSchema:
      title: UpdateWarehouseProductDetailRequestSchema
      type: object
      properties:
        locationLabel:
          type: string
        maxStockLevel:
          type: integer
        minStockLevel:
          type: integer
    NullableStockResponseSchema:
      title: NullableStockResponseSchema
      type: object
      nullable: true
      properties:
        averageCost:
          type: integer
        locationLabel:
          type: string
        maxStockLevel:
          type: integer
        minStockLevel:
          type: integer
        productUid:
          $ref: '#/components/schemas/UID'
        productSku:
          type: string
        quantityReserved:
          type: integer
        quantityStock:
          type: integer
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
          x-stoplight:
            id: y0j2ue0p9j11i
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
          x-stoplight:
            id: kpbk4cdu494it
      required:
        - averageCost
        - locationLabel
        - maxStockLevel
        - minStockLevel
        - productUid
        - productSku
        - quantityReserved
        - quantityStock
        - warehouseUid
        - warehouseName
        - storeUid
        - storeName
    NumberSeriesResponseSchema:
      properties:
        currentValue:
          type: integer
        end:
          type: integer
        name:
          type: string
        numberSeriesUid:
          $ref: '#/components/schemas/UID'
        start:
          type: integer
        type:
          $ref: '#/components/schemas/NumberSeriesTypeENUM'
      x-stoplight:
        id: au8tg2w0eanbj
      required:
        - numberSeriesUid
        - name
        - type
        - currentValue
        - end
        - start
      title: NumberSeriesResponseSchema
      type: object
    NumberSeriesCreateSchema:
      title: NumberSeriesCreateSchema
      x-stoplight:
        id: zrlk9vkbnz2ds
      type: object
      properties:
        end:
          type: integer
        name:
          type: string
        start:
          type: integer
        type:
          $ref: '#/components/schemas/NumberSeriesTypeENUM'
        numberSeriesUid:
          $ref: '#/components/schemas/UID'
      required:
        - end
        - name
        - start
        - type
    NumberSeriesTypeENUM:
      enum:
        - PURCHASE
        - VOUCHER
        - SERVICE
        - INTERNAL_PURCHASE
        - RMA_ORDER
        - CUSTOMER_LEDGER
      title: NumberSeriesTypeENUM
      type: string
    NumberSeriesUpdateSchema:
      properties:
        end:
          type: integer
        name:
          type: string
        start:
          type: integer
      required:
        - name
      title: NumberSeriesUpdateSchema
      type: object
    OrderResponseSchema:
      description: Use invoiceAddress only if an order has a different invoice  than orderAddress.
      x-stoplight:
        id: 0qzslk8nrybcg
      title: OrderResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - createdAt
        - customerAddress
        - customerUid
        - customerContact
        - deliveryState
        - externalOrderNumber
        - externalVoucherNumber
        - invoiceAddress
        - items
        - lastModifiedAt
        - note
        - internalNote
        - orderUid
        - orderNumber
        - orderDate
        - orderState
        - orderTotals
        - orderhandlingState
        - orderhandlings
        - settleState
        - settlementTotals
        - settlements
        - storeUid
        - storeName
        - systemOrigin
        - tenantUserDisplayName
        - tenantUserUid
        - tillUid
        - type
        - vatFree
        - vatPrint
        - voucherNumber
        - deliveryDate
        - discounts
        - compensationReasonUid
        - lastModifiedBy
        - allowedActions
      properties:
        createdAt:
          format: date-time
          type: string
        customerAddress:
          $ref: '#/components/schemas/OrderAddressResponseSchema'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        customerContact:
          $ref: '#/components/schemas/OrderCustomerContactResponseSchema'
        deliveryState:
          $ref: '#/components/schemas/OrderDeliveryStateENUM'
        externalOrderNumber:
          type: string
        externalVoucherNumber:
          type: string
        invoiceAddress:
          $ref: '#/components/schemas/InvoiceAddressResponseSchema'
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItemResponseSchema'
        lastModifiedAt:
          format: date-time
          type: string
        note:
          description: Note visible on the receipt.
          type: string
        internalNote:
          type: string
          description: 'Internal note, not visible on the receipt.'
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
        orderDate:
          type: string
          x-stoplight:
            id: p1w0iypl52m39
          format: date-time
          description: This field has value if type == `ORDER`
          nullable: true
        orderState:
          $ref: '#/components/schemas/OrderOrderStateENUM'
        orderTotals:
          $ref: '#/components/schemas/OrderTotalsResponseSchema'
        orderhandlingState:
          $ref: '#/components/schemas/HandlingStateENUM'
        orderhandlings:
          type: array
          items:
            $ref: '#/components/schemas/OrderHandlingResponseSchema'
        settleState:
          $ref: '#/components/schemas/OrderSettleStateENUM'
        settledAt:
          description: When the settleState is set COMPLETE.
          format: date-time
          type: string
          nullable: true
        settlementTotals:
          $ref: '#/components/schemas/OrderSettlementTotalsSchema'
        settlements:
          type: array
          items:
            $ref: '#/components/schemas/SettlementResponseSchema'
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          x-stoplight:
            id: rheiiuts730yv
          type: string
        systemOrigin:
          type: string
          x-stoplight:
            id: k129hj38ydne8
        tenantUserDisplayName:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        tillUid:
          $ref: '#/components/schemas/OptionalUID'
        type:
          $ref: '#/components/schemas/OrderTypeENUM'
        validUntil:
          format: date-time
          type: string
          nullable: true
        vatFree:
          type: boolean
        vatPrint:
          $ref: '#/components/schemas/VatPrintENUM'
        voucherNumber:
          description: A reference to a fully settled order.
          type: string
        deliveryDate:
          type: string
          x-stoplight:
            id: 14aw1swp7o9ks
          format: date
        discounts:
          type: array
          x-stoplight:
            id: zrd8vlkosj8jp
          items:
            $ref: '#/components/schemas/OrderDiscountResponseSchema'
        compensationReasonUid:
          $ref: '#/components/schemas/OptionalUID'
        lastModifiedBy:
          type: string
          x-stoplight:
            id: fbgab5yv5qk7t
        allowedActions:
          type: array
          x-stoplight:
            id: ddzs7tecdhbcz
          items:
            $ref: '#/components/schemas/AllowedOrderActionENUM'
    OrderAddressResponseSchema:
      x-stoplight:
        id: r0csvk57h3a35
      title: OrderAddressResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - address
        - city
        - companyName
        - countryCode
        - email
        - firstname
        - lastname
        - mobile
        - postalCode
        - displayName
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        firstname:
          type: string
        lastname:
          type: string
        mobile:
          type: string
        postalCode:
          type: string
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        displayName:
          type: string
          x-stoplight:
            id: p0uzyrpsijf6f
      description: ''
    BaseAddressSchema:
      x-stoplight:
        id: 6hdvspb2ryi1h
      title: BaseAddressSchema
      type: object
      x-tags:
        - Order
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
        firstname:
          type: string
        lastname:
          type: string
          x-stoplight:
            id: kdy11jjr6qa16
        postalCode:
          type: string
    DeliveryAddressResponseSchema:
      title: DeliveryAddressResponseSchema
      x-tags:
        - Order
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
        - required:
            - displayName
            - customerAddressUid
            - address
            - city
            - companyName
            - countryCode
            - email
            - mobile
            - firstname
            - lastname
            - postalCode
          properties:
            displayName:
              type: string
            customerAddressUid:
              $ref: '#/components/schemas/OptionalUID'
      type: object
    DeprecatedDeliveryAddressResponseSchema:
      deprecated: true
      title: DeprecatedDeliveryAddressResponseSchema
      x-tags:
        - Order
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
        - required:
            - displayName
            - customerAddressUid
            - address
            - city
            - companyName
            - countryCode
            - email
            - mobile
            - firstname
            - lastname
            - postalCode
          properties:
            displayName:
              type: string
            customerAddressUid:
              $ref: '#/components/schemas/OptionalUID'
      type: object
    InvoiceAddressResponseSchema:
      title: InvoiceAddressResponseSchema
      x-tags:
        - Order
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
        - required:
            - displayName
            - customerAddressUid
            - address
            - city
            - companyName
            - countryCode
            - email
            - mobile
            - firstname
            - lastname
            - postalCode
          properties:
            displayName:
              type: string
              x-stoplight:
                id: y9574nsohrjlf
            customerAddressUid:
              $ref: '#/components/schemas/OptionalUID'
      type: object
    DeliveryAddressRequestSchema:
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
      x-stoplight:
        id: ef9014f5eab63
      title: DeliveryAddressRequestSchema
      type: object
    DeprecatedDeliveryAddressRequestSchema:
      deprecated: true
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
      x-stoplight:
        id: ef9014f5eab63
      title: DeliveryAddressRequestSchema
      type: object
    OrderAddressSchema:
      allOf:
        - $ref: '#/components/schemas/BaseAddressSchema'
        - properties:
            vatNumber:
              $ref: '#/components/schemas/VatNumberTYPE'
      x-stoplight:
        id: 2d4bf5ac45b21
      title: OrderCreateRequestSchema
      type: object
    CustomerAddressTypeENUM:
      enum:
        - DELIVERY_ADDRESS
        - INVOICE_ADDRESS
      x-stoplight:
        id: ad72221ed56b8
      title: CustomerAddressTypeENUM
      type: string
    CustomerAddressCreateRequestSchema:
      x-stoplight:
        id: m518at0ydtgg1
      title: CustomerAddressCreateRequestSchema
      type: object
      x-tags:
        - Customer
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        firstname:
          type: string
          x-stoplight:
            id: 82pag85d2ohgj
        lastname:
          type: string
          x-stoplight:
            id: clj9k4ta0y7sx
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: di549ibcryhwi
        postalCode:
          type: string
        type:
          $ref: '#/components/schemas/CustomerAddressTypeENUM'
        customerAddressUid:
          $ref: '#/components/schemas/UID'
      required:
        - type
    CustomerAddressUpdateRequestSchema:
      title: CustomerAddressUpdateRequestSchema
      type: object
      x-tags:
        - Customer
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        countryCode:
          type: string
          x-stoplight:
            id: 2ttk9u726szyv
        firstname:
          type: string
          x-stoplight:
            id: i0823xv9g31ko
        lastname:
          type: string
          x-stoplight:
            id: 5z6uq1kbkdtwu
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: kxs0ozwb77yag
        postalCode:
          type: string
        type:
          $ref: '#/components/schemas/CustomerAddressTypeENUM'
    CustomerAddressResponseSchema:
      title: CustomerAddressResponseSchema
      type: object
      x-tags:
        - Customer
      required:
        - address
        - city
        - companyName
        - firstname
        - lastname
        - countryCode
        - email
        - phone
        - postalCode
        - type
        - customerAddressUid
        - displayName
      properties:
        address:
          type: string
        city:
          type: string
        companyName:
          type: string
        firstname:
          type: string
          x-stoplight:
            id: th1gu3bu9wf52
        lastname:
          type: string
          x-stoplight:
            id: o0m3umiow0de9
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: 56o715eom3mxe
        postalCode:
          type: string
        type:
          $ref: '#/components/schemas/CustomerAddressTypeENUM'
        customerAddressUid:
          type: string
          x-stoplight:
            id: 8zn42hfp02g31
        displayName:
          type: string
          x-stoplight:
            id: br5n4v5zmv84i
    OrderChangeStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | OPEN    | Set order in state open, to be able to edit it.|
        | PARKED  | Set order in state parked.|
        | CONFIRMED  | Set order in state confirmed.|
      enum:
        - PARKED
        - OPEN
        - CONFIRMED
      title: OrderChangeStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    OrderCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/OrderUpdateRequestSchema'
        - properties:
            orderUid:
              $ref: '#/components/schemas/UID'
            systemOrigin:
              type: string
            compensationReasonUid:
              $ref: '#/components/schemas/UID'
      title: OrderCreateRequestSchema
      type: object
    OrderUpdateRequestSchema:
      title: OrderUpdateRequestSchema
      x-stoplight:
        id: wasc41utyiwml
      type: object
      x-tags:
        - Order
      properties:
        customerAddress:
          $ref: '#/components/schemas/OrderAddressSchema'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        customerContactUid:
          $ref: '#/components/schemas/OptionalUID'
        deviceIdentifier:
          type: string
        externalOrderNumber:
          type: string
        externalVoucherNumber:
          type: string
        invoiceCustomerAddressUid:
          $ref: '#/components/schemas/UID'
        invoiceAddress:
          $ref: '#/components/schemas/OrderAddressSchema'
        note:
          description: Note visible on the receipt.
          type: string
        internalNote:
          type: string
          description: 'Internal note, not visible on the receipt.'
        type:
          $ref: '#/components/schemas/OrderTypeENUM'
        validUntil:
          format: date-time
          type: string
        vatFree:
          type: boolean
        vatPrint:
          $ref: '#/components/schemas/VatPrintENUM'
    OrderCreateImportSchema:
      description: Schema for creating a complete order in one request.
      title: OrderCreateImportSchema
      type: object
      x-internal: false
      x-stoplight:
        id: l51awn0qfsr5f
      required:
        - items
        - orderTotals
        - type
        - validUntil
        - vatFree
      properties:
        orderDate:
          format: date-time
          type: string
          x-stoplight:
            id: n48tquvbzxm96
          nullable: true
        customerAddress:
          $ref: '#/components/schemas/OrderAddressSchema'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        customerContactUid:
          $ref: '#/components/schemas/OptionalUID'
        externalOrderNumber:
          type: string
        externalVoucherNumber:
          type: string
        invoiceAddress:
          $ref: '#/components/schemas/OrderAddressSchema'
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderImportItemCreateSchema'
        note:
          type: string
        internalNote:
          type: string
          description: 'Internal note, not visible on the receipt.'
        orderTotals:
          $ref: '#/components/schemas/OrderTotalsImportSchema'
        settlements:
          type: array
          items:
            $ref: '#/components/schemas/OrderSettlementImportSchema'
        type:
          $ref: '#/components/schemas/OrderTypeENUM'
        systemOrigin:
          type: string
          x-stoplight:
            id: m34zos9r8ftvv
        validUntil:
          format: date-time
          type: string
          nullable: true
        vatFree:
          type: boolean
        vatPrint:
          $ref: '#/components/schemas/VatPrintENUM'
        orderUid:
          $ref: '#/components/schemas/UID'
        tenantUserDisplayName:
          type: string
          x-stoplight:
            id: g6nlv6okyurp7
        handlingUids:
          type: array
          x-stoplight:
            id: z00hq7ynnutyy
          items:
            $ref: '#/components/schemas/UID'
        orderDeliveries:
          type: array
          x-stoplight:
            id: 4vxhxrsgx1urs
          items:
            $ref: '#/components/schemas/OrderImportOrderDeliveryCreateRequestSchema'
    OrderDeliveryResponseSchema:
      x-stoplight:
        id: ooxonvcpap3dm
      title: OrderDeliveryResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - createdAt
        - createdBy
        - deliveryUid
        - lastModifiedAt
        - lastModifiedBy
        - signature
        - note
        - deliveryAddress
        - deliveryState
        - deliveryDate
        - externalDeliveryReference
        - trackingNumber
        - deliveryProviderUid
        - deliveryProviderMethodUid
        - items
        - orderItems
        - freightOrderItemUid
        - deliveryProviderMethodTimeslotUid
        - timeslot
        - shipping
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        deliveryUid:
          $ref: '#/components/schemas/UID'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        signature:
          type: string
        note:
          type: string
          x-stoplight:
            id: 7t9648vlvchd1
        deliveryAddress:
          $ref: '#/components/schemas/DeprecatedDeliveryAddressResponseSchema'
        deliveryState:
          $ref: '#/components/schemas/DeliveryStateENUM'
        deliveryDate:
          x-stoplight:
            id: 27dqjgjngdrlp
          type: string
          format: date
          nullable: true
        externalDeliveryReference:
          x-stoplight:
            id: uqz9c5kwjh3y7
          type: string
        trackingNumber:
          deprecated: true
          x-stoplight:
            id: 3rpm5ulxn451a
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/DeprecatedOptionalUID'
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/DeprecatedOptionalUID'
        warehouseUid:
          $ref: '#/components/schemas/DeprecatedUID'
        items:
          type: array
          x-stoplight:
            id: lqjx937vaxeci
          items:
            $ref: '#/components/schemas/OrderItemDeliverResponseSchema'
        orderItems:
          type: array
          x-stoplight:
            id: wc2ibaxhdbsqj
          items:
            $ref: '#/components/schemas/OrderItemResponseSchema'
        freightOrderItemUid:
          $ref: '#/components/schemas/DeprecatedOptionalUID'
        deliveryProviderMethodTimeslotUid:
          $ref: '#/components/schemas/DeprecatedOptionalUID'
        timeslotName:
          type: string
          x-stoplight:
            id: 4hx82ixi7lce8
          deprecated: true
        timeslot:
          $ref: '#/components/schemas/DeprecatedOrderDeliveryTimeslotResponseSchema'
        shipping:
          $ref: '#/components/schemas/OrderDeliveryShippingResponseSchema'
    OrderDeliveryShippingResponseSchema:
      title: OrderDeliveryShippingResponseSchema
      x-stoplight:
        id: k87i34v2fpdms
      type: object
      x-tags:
        - Order
      required:
        - deliveryCustomerAddressUid
        - deliveryAddress
        - pickupPoint
        - trackingNumber
        - deliveryProviderUid
        - deliveryProviderMethodUid
        - deliveryProviderMethodTimeslotUid
        - timeslot
        - deliveryProviderProcessIndicator
        - freightOrderItemUid
      properties:
        deliveryCustomerAddressUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryAddress:
          $ref: '#/components/schemas/DeliveryAddressResponseSchema'
        pickupPoint:
          $ref: '#/components/schemas/OrderDeliveryPickupPointResponseSchema'
        trackingNumber:
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryProviderMethodTimeslotUid:
          $ref: '#/components/schemas/OptionalUID'
        timeslot:
          $ref: '#/components/schemas/OrderDeliveryTimeslotResponseSchema'
        deliveryProviderProcessIndicator:
          type: string
          x-stoplight:
            id: 9o9rz88hzsvg1
        freightOrderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        shippingId:
          type: integer
          x-stoplight:
            id: 384bf2alhz1ux
          format: int64
    OrderDeliveryShippingRequestSchema:
      title: OrderDeliveryShippingRequestSchema
      x-stoplight:
        id: ei5ts84tvj1y8
      type: object
      x-tags:
        - Order
      properties:
        deliveryCustomerAddressUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryAddress:
          $ref: '#/components/schemas/DeliveryAddressRequestSchema'
        pickupPoint:
          $ref: '#/components/schemas/OrderDeliveryPickupPointRequestSchema'
        trackingNumber:
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryProviderMethodTimeslotUid:
          $ref: '#/components/schemas/OptionalUID'
        timeslot:
          $ref: '#/components/schemas/OrderDeliveryTimeslotRequestSchema'
        deliveryProviderProcessIndicator:
          type: string
          x-stoplight:
            id: 10v2j9zundwwz
        freightProductUid:
          $ref: '#/components/schemas/OptionalUID'
        freightPrice:
          type: integer
    DeliverySearchResponseSchema:
      title: DeliverySearchResponseSchema
      x-stoplight:
        id: uzv4cvrid62xh
      type: object
      x-tags:
        - Order
      required:
        - createdAt
        - createdBy
        - deliveryUid
        - lastModifiedAt
        - lastModifiedBy
        - signature
        - note
        - deliveryAddress
        - deliveryState
        - deliveryDate
        - externalDeliveryReference
        - trackingNumber
        - deliveryProviderUid
        - deliveryProviderMethodUid
        - items
        - order
        - timeslot
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        deliveryUid:
          $ref: '#/components/schemas/UID'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        signature:
          type: string
        note:
          type: string
          x-stoplight:
            id: va8kwqs7bn0fq
        deliveryAddress:
          $ref: '#/components/schemas/DeliveryAddressResponseSchema'
        deliveryState:
          $ref: '#/components/schemas/DeliveryStateENUM'
        deliveryDate:
          type: string
          format: date
          nullable: true
        externalDeliveryReference:
          type: string
        trackingNumber:
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/OptionalUID'
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/OptionalUID'
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItemDeliverResponseSchema'
        order:
          $ref: '#/components/schemas/AssociatedOrderSchema'
        timeslot:
          $ref: '#/components/schemas/AssociatedTimeslotSchema'
    OrderDeliveryStateENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Delivery not started|
        | IN_PROGRESS | Delivery is in progress. Some order lines are still reserved|
        | COMPLETE | Delivery is complete. All order lines are delivered|
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
      title: OrderDeliveryStateENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ReceiptStateENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Receipt not started. No complete settlements exists.|
        | IN_PROGRESS | Receipt is in progress. At least one settlement has been started.|
        | COMPLETE | Receipt is complete. Sum of settlements = sum of orderlines.|
        | CANCELED | Receipt is canceled. Can only be done if receiptState = NOT_STARTED. |
      x-stoplight:
        id: 67d1t1nbugr2i
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
      title: ReceiptStateENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    OrderHandlingCreateRequestSchema:
      title: OrderHandlingCreateRequestSchema
      type: object
      x-stoplight:
        id: 73s7iz0n57eco
      properties:
        handlingUid:
          $ref: '#/components/schemas/UID'
        orderHandlingUid:
          $ref: '#/components/schemas/UID'
      required:
        - handlingUid
    OrderHandlingResponseSchema:
      properties:
        active:
          type: boolean
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        description:
          type: string
        handlingUid:
          $ref: '#/components/schemas/UID'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        name:
          maxLength: 20
          type: string
        orderHandlingUid:
          $ref: '#/components/schemas/UID'
        state:
          $ref: '#/components/schemas/HandlingStateENUM'
      required:
        - orderHandlingUid
        - handlingUid
        - active
        - description
        - name
        - state
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      title: OrderHandlingResponseSchema
      type: object
      x-stoplight:
        id: l6tkpzuqhms1a
    OrderHandlingUpdateRequestSchema:
      title: OrderHandlingUpdateRequestSchema
      type: object
      x-stoplight:
        id: hey8mc08m4e48
      properties:
        state:
          $ref: '#/components/schemas/HandlingStateENUM'
        comment:
          type: string
      required:
        - state
    OrderItemResponseSchema:
      x-stoplight:
        id: q0537jeqg6qwb
      title: OrderItemResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - actions
        - allowedActions
        - createdAt
        - discountReasonCode
        - externalId
        - itemCost
        - itemDiscountAmount
        - itemDiscountPercentage
        - itemGrossProfitAmount
        - itemGrossProfitPercentage
        - itemPrice
        - itemVatAmount
        - lastModifiedAt
        - ledgerNumber
        - name
        - note
        - orderItemUid
        - originalItemPrice
        - productUid
        - productType
        - properties
        - quantityCredited
        - quantityDelivered
        - quantityOrdered
        - quantityReserved
        - returnReasonCode
        - serialnumber
        - sku
        - sortOrder
        - tenantUserDisplayName
        - tenantUserUid
        - totalCost
        - totalDiscountAmount
        - totalGrossProfitAmount
        - totalPrice
        - totalVatAmount
        - vatCodeUid
        - warehouseUid
        - warehouseName
        - internalInfo
        - productProperties
        - coverImage
        - deliveryUid
        - compensationReasonCode
        - orderReceiptUid
        - allowDelivery
        - allowDeliveryFromDate
        - reservationType
        - reservationDetails
        - gtins
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/OrderItemActionResponseSchema'
        allowedActions:
          description: Indicate what fields are allowed to change or what action is allowed on an orderline
          type: array
          items:
            $ref: '#/components/schemas/AllowedActionENUM'
        createdAt:
          format: date-time
          type: string
        discountReasonCode:
          type: string
        externalId:
          type: string
        itemCost:
          description: Item cost for a single product.
          type: integer
        itemDiscountAmount:
          description: Discount amount for a single product.
          type: integer
        itemDiscountPercentage:
          type: integer
        itemGrossProfitAmount:
          description: Profit amount for a single product.
          type: integer
        itemGrossProfitPercentage:
          description: Profit for a single product in percentage.
          type: integer
        itemPrice:
          type: integer
        itemVatAmount:
          description: Vat amount for a single product.
          type: integer
        lastModifiedAt:
          format: date-time
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        name:
          type: string
        note:
          type: string
        orderItemUid:
          $ref: '#/components/schemas/UID'
        orderLinks:
          description: |-
            List of references on the order product item.
            Typically a list of credit operations.
          type: array
          items:
            $ref: '#/components/schemas/OrderLinkTypeSchema'
        originalItemPrice:
          type: integer
        productUid:
          $ref: '#/components/schemas/UID'
        productType:
          $ref: '#/components/schemas/ProductTypeENUM'
        properties:
          type: array
          items:
            $ref: '#/components/schemas/OrderProductLinePropertyResponseSchema'
        quantityCredited:
          type: integer
        quantityDelivered:
          type: integer
        quantityOrdered:
          type: integer
        quantityReserved:
          type: integer
        returnReasonCode:
          type: string
        serialnumber:
          type: string
        sku:
          type: string
        sortOrder:
          type: integer
        tenantUserDisplayName:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        totalCost:
          description: Total cost for all products on this OrderItem.
          type: integer
        totalDiscountAmount:
          description: Discount amount for all products on this OrderItem.
          type: integer
        totalGrossProfitAmount:
          description: Profit amount for all products on this OrderItem.
          type: integer
        totalPrice:
          description: Total price for all products on this OrderItem.
          type: integer
        totalVatAmount:
          description: Vat amount for all products on this OrderItem.
          type: integer
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        warehouseName:
          type: string
        internalInfo:
          type: string
          x-stoplight:
            id: yztbmljs96yyb
        productProperties:
          type: array
          x-stoplight:
            id: yypx4bedrqcd6
          items:
            $ref: '#/components/schemas/ProductPropertyResponseSchema'
        coverImage:
          $ref: '#/components/schemas/CoverImageSchema'
        deliveryUid:
          $ref: '#/components/schemas/OptionalUID'
        compensationReasonCode:
          type: string
          x-stoplight:
            id: 3oy55ef36bp4h
        orderReceiptUid:
          $ref: '#/components/schemas/OptionalUID'
        allowDelivery:
          $ref: '#/components/schemas/AllowDeliveryENUM'
        allowDeliveryFromDate:
          type: string
          x-stoplight:
            id: vouceydsx4i2i
          format: date-time
          description: When allowDelivery is `NOT_BEFORE_DATE` this field will contain the time for when the product is allowed to be delivered from.
          nullable: true
        reservationType:
          $ref: '#/components/schemas/SalesReservationTypeENUM'
        reservationDetails:
          $ref: '#/components/schemas/SalesReservationDetailsSchema'
        gtins:
          type: array
          items:
            $ref: '#/components/schemas/ProductGtinSchema'
    OrderItemActionCreateRequestSchema:
      title: OrderItemActionCreateRequestSchema
      type: object
      x-stoplight:
        id: wj4yg3reoihhe
      properties:
        comment:
          type: string
        handlingActionUid:
          $ref: '#/components/schemas/UID'
        handlingUid:
          $ref: '#/components/schemas/UID'
        orderHandlingActionUid:
          $ref: '#/components/schemas/UID'
      required:
        - handlingActionUid
        - handlingUid
    OrderItemActionResponseSchema:
      properties:
        comment:
          type: string
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        handlingActionUid:
          $ref: '#/components/schemas/UID'
        handlingActionName:
          type: string
        handlingDescription:
          type: string
        handlingUid:
          $ref: '#/components/schemas/UID'
        handlingName:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        orderHandlingActionUid:
          $ref: '#/components/schemas/UID'
      required:
        - orderHandlingActionUid
        - handlingUid
        - handlingName
        - handlingActionUid
        - handlingActionName
        - comment
        - handlingDescription
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      title: OrderItemActionResponseSchema
      type: object
      x-stoplight:
        id: wds1g4tf0xjfv
    OrderItemActionUpdateRequestSchema:
      properties:
        comment:
          type: string
      required:
        - comment
      title: OrderItemActionUpdateRequestSchema
      type: object
      x-stoplight:
        id: 4svubjvac5t7w
    OrderItemCreateSchema:
      title: OrderItemCreateSchema
      x-stoplight:
        id: 00kpnouw9o99u
      type: object
      x-tags:
        - Order
      required:
        - productUid
      properties:
        discountReasonCode:
          type: string
        externalId:
          description: External reference to order line
          type: string
        itemDiscountAmount:
          type: integer
        itemDiscountPercentage:
          description: Used to calculate itemDiscountAmount.
          type: integer
        itemPrice:
          type: integer
        note:
          type: string
        orderItemLink:
          $ref: '#/components/schemas/OrderItemLinkSchema'
        productUid:
          $ref: '#/components/schemas/UID'
        properties:
          type: array
          items:
            $ref: '#/components/schemas/OrderProductLinePropertySchema'
        quantityOrdered:
          type: integer
        reserveStock:
          default: false
          description: Set this to true to only resevere the stock from the warehouse when the order is settled.
          type: boolean
          deprecated: true
        deliveryUid:
          $ref: '#/components/schemas/UID'
        returnReasonCode:
          type: string
        serialnumber:
          type: string
        sku:
          description: Product SKU
          type: string
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        purchaseOrderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        orderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        reservationType:
          $ref: '#/components/schemas/SalesReservationTypeENUM'
        sortOrder:
          type: integer
          x-stoplight:
            id: ez9p23fhagg4i
        itemCostPrice:
          type: integer
          description: |-
            When a product has orderSpecificCost=true: Can set costPrice on the orderItem
            If itemCostPrice is set and orderSpecificCost=false for the product, an error is returned
        productName:
          type: string
          description: |-
            When a product has orderSpecificName=true: Can set productName on the orderItem
            If itemCostPrice is set and orderSpecificName=false for the product, an error is returned
    OrderItemDeliverRequestSchema:
      x-stoplight:
        id: tp4fuo3h43tg7
      title: OrderItemDeliverRequestSchema
      type: object
      x-tags:
        - Order
      properties:
        deliveryUid:
          $ref: '#/components/schemas/UID'
        quantityDelivered:
          type: integer
        serialnumber:
          type: string
        sku:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        deliveryItemUid:
          $ref: '#/components/schemas/UID'
      required:
        - deliveryUid
        - quantityDelivered
        - warehouseUid
    OrderItemDeliverResponseSchema:
      x-stoplight:
        id: 052df1gwyz2ul
      title: OrderItemDeliverResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - deliveryItemUid
        - quantityDelivered
        - warehouseUid
        - warehouseName
        - tenantUserUid
        - tenantUserDisplayName
      properties:
        deliveryItemUid:
          $ref: '#/components/schemas/UID'
        quantityDelivered:
          type: integer
        serialnumber:
          type: string
        sku:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
          x-stoplight:
            id: nw335b92d0cts
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
        tenantUserDisplayName:
          type: string
          x-stoplight:
            id: s0llgu07aznsp
      description: tenantUserUid and tenantUserDisplayName contains the user that delivered the items
    OrderItemLinkSchema:
      description: OrderItemLinkSchema
      title: OrderItemLinkSchema
      type: object
      x-stoplight:
        id: 7hhk1k2wnkp5r
      properties:
        linkType:
          $ref: '#/components/schemas/OrderLinkTypeRequestENUM'
        orderItemUid:
          $ref: '#/components/schemas/UID'
      required:
        - linkType
        - orderItemUid
    OrderItemUpdateSchema:
      x-stoplight:
        id: im6w7daujb0wh
      title: OrderItemUpdateSchema
      type: object
      x-tags:
        - Order
      properties:
        discountReasonCode:
          type: string
        externalId:
          description: External reference to order line
          type: string
        itemDiscountAmount:
          type: integer
        itemDiscountPercentage:
          description: Used to calculate itemDiscountAmount.
          type: integer
        itemPrice:
          type: integer
        note:
          type: string
        properties:
          type: array
          items:
            $ref: '#/components/schemas/OrderProductLinePropertySchema'
        quantityOrdered:
          type: integer
        deliveryUid:
          $ref: '#/components/schemas/OptionalUID'
        returnReasonCode:
          type: string
        serialnumber:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        reservationType:
          $ref: '#/components/schemas/SalesReservationTypeENUM'
        purchaseOrderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        sortOrder:
          type: integer
          x-stoplight:
            id: ce2wpad6jnxqq
        itemCostPrice:
          type: integer
          description: |-
            When a product has orderSpecificCost=true: Can set costPrice on the orderItem
            If itemCostPrice is set and orderSpecificCost=false for the product, an error is returned
        productName:
          type: string
          description: |-
            When a product has orderSpecificName=true: Can set productName on the orderItem
            If itemCostPrice is set and orderSpecificName=false for the product, an error is returned
    OrderLinkTypeSchema:
      description: Order reference for an order product item
      x-stoplight:
        id: rn2lbtp4yjio8
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderItemUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          description: Order number for the order
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/OrderLinkTypeResponseENUM'
      required:
        - storeUid
        - orderUid
        - orderNumber
        - orderItemUid
        - type
      title: OrderLinkTypeSchema
      type: object
      x-tags:
        - Product
    PurchaseOrderItemLinkSchema:
      description: Order reference for an order product item
      x-stoplight:
        id: w9su0tylhctsw
      title: PurchaseOrderItemLinkSchema
      type: object
      x-tags:
        - Product
      required:
        - purchaseOrderItemUid
        - type
      properties:
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/PurchaseOrderLinkTypeResponseENUM'
    OrderLinkTypeResponseENUM:
      description: |
        Describes the type of link on an order product item

        |ENUM | Description |
        | --- | --- |
        | CREDIT | Reference is a credit link|
        | INSURANCE | Reference to orderline with product to insure|
        | INSURED | Reference to orderline with insurance |
        | COMPENSATION | Reference to orderline with product to compensate|
        | COMPENSATED | Reference to orderline with compensation |
        | PACKAGE | Reference to orderline with main package product |
        | PACKAGE_COMPONENT | Reference to orderline with package component product |
        | SERVICE | Reference to orderline that is a service product |
        | HAS_SERVICE | Reference to orderline that points to a service product |
        | FREIGHT_SERVICE | Reference to orderline that is a freight service product |
        | HAS_FREIGHT_SERVICE | Reference to orderline that points to a freight service product |
        | AUTO_ADD | Reference to orderline that has been automatically added |
      enum:
        - CREDIT
        - INSURANCE
        - INSURED
        - COMPENSATION
        - COMPENSATED
        - PACKAGE
        - PACKAGE_COMPONENT
        - SERVICE
        - HAS_SERVICE
        - FREIGHT_SERVICE
        - HAS_FREIGHT_SERVICE
        - AUTO_ADD
      title: OrderLinkTypeResponseENUM
      type: string
      x-tags:
        - ENUM
    PurchaseOrderLinkTypeResponseENUM:
      description: |
        Describes the type of link on an order product item

        |ENUM | Description |
        | --- | --- |
        | PACKAGE | Reference to orderline with main package product |
        | PACKAGE_COMPONENT | Reference to orderline with package component product |
      x-stoplight:
        id: 2i54czl8umbxs
      enum:
        - PACKAGE
        - PACKAGE_COMPONENT
      title: PurchaseOrderLinkTypeResponseENUM
      type: string
      x-tags:
        - ENUM
    OrderLinkTypeRequestENUM:
      description: |-
        Describes the type of link on an order product item

        |ENUM | Description |
        | --- | --- |
        | CREDIT | Reference is a credit link   |
        | INSURANCE | Reference to the orderline with the product to insure |
        | COMPENSATION | Reference to the orderline with the product to compensate |
        | SERVICE | Reference to orderline with service product |
        | FREIGHT_SERVICE | Reference to orderline with freight service product |
      x-stoplight:
        id: 0d19e5525f7f6
      enum:
        - CREDIT
        - INSURANCE
        - COMPENSATION
        - SERVICE
        - FREIGHT_SERVICE
      title: OrderLinkTypeRequestENUM
      type: string
      x-tags:
        - ENUM
    OrderOrderStateENUM:
      description: |
        |ENUM | Description |
        | --- | --- |
        | OPEN | Order is open and beeing edited by someone|
        | PARKED | Order is parked|
        | CANCELED | Order is canceled/deleted|
        | COMPLETE | Order is complete|
        | CONFIRMED | Order is confirmed|
      enum:
        - OPEN
        - PARKED
        - CANCELED
        - COMPLETE
        - CONFIRMED
      title: OrderOrderStateENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    OrderProductLinePropertyResponseSchema:
      allOf:
        - properties:
            uid:
              $ref: '#/components/schemas/UID'
          required:
            - uid
          type: object
        - $ref: '#/components/schemas/OrderProductLinePropertySchema'
      title: OrderProductLinePropertyResponseSchema
    OrderProductLinePropertySchema:
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      title: OrderProductLinePropertySchema
      type: object
      x-stoplight:
        id: mmvtfue4h6vzy
    OrderSearchSchema:
      description: |-
        Search for orders. 

        Only one of the keys in the search object will be used in a search. 

        If more than one key is supplied the keys will be used in the priorty of how they appear in the object. 
        Example: query will be used first if it is supplied, if it is not supplied the customer key will be used, and so on.

        An empty string will be ignored, and handeled as if the key did not exist in the payload.

        Fuzzy search means that it will try to find words that contains the query string that is supplied. 
        Example: If you search for "Ol" you will get "Olsen", "Olstad", "Bolset", "Ormebol", etc ..
      x-stoplight:
        id: fgrk13llutws4
      title: OrderSearchSchema
      type: object
      x-tags:
        - Order
      properties:
        customerQuery:
          description: 'Search for orders containting this customer. The customer can be specific by firstname, lastname, phonenumber or email. This is a fuzzy search.'
          type: string
          x-stoplight:
            id: af5p8vxdt1sxc
        customerUid:
          $ref: '#/components/schemas/UID'
        fromDateTime:
          format: date-time
          type: string
          deprecated: true
        createdAtFrom:
          format: date-time
          type: string
        settledAtFrom:
          format: date-time
          type: string
        lastModifiedAtFrom:
          format: date-time
          type: string
        orderNumber:
          description: Search for an order with a specific ordernumber. This is an exact lookup
          type: string
        productSku:
          description: Search for orders containing the product. This must be a SKU and is an exact lookup.
          type: string
          x-stoplight:
            id: ebeh5qyq7p5xq
        query:
          description: |-
            General query string. Use to search for orders where the server decided the query conditions.
            This is a fuzzy search.
          type: string
        toDateTime:
          format: date-time
          type: string
          deprecated: true
        createdAtTo:
          format: date-time
          type: string
        settledAtTo:
          format: date-time
          type: string
        lastModifiedAtTo:
          format: date-time
          type: string
        tenantUserUids:
          type: array
          x-stoplight:
            id: nb172bt4lo6kk
          items:
            $ref: '#/components/schemas/UID'
        orderHandlingStates:
          type: array
          items:
            $ref: '#/components/schemas/HandlingStateENUM'
        orderHandlingUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        orderStates:
          type: array
          x-stoplight:
            id: dyyfo7hfq54g8
          items:
            $ref: '#/components/schemas/OrderOrderStateENUM'
        settleStates:
          type: array
          x-stoplight:
            id: 6xxo8bn0ojex6
          items:
            $ref: '#/components/schemas/OrderSettleStateENUM'
        deliveryStates:
          type: array
          description: Reference to an array of deliveryStates.
          items:
            $ref: '#/components/schemas/OrderDeliveryStateENUM'
        orderStatuses:
          type: array
          description: Reference to a list of orderStatuses.
          items:
            $ref: '#/components/schemas/OrderStatusENUM'
        orderTypes:
          type: array
          description: Reference to a list of orderTypes
          items:
            $ref: '#/components/schemas/OrderTypeENUM'
        productUids:
          type: array
          x-stoplight:
            id: hl4ft01brri3u
          items:
            $ref: '#/components/schemas/UID'
        tenantPaymentMethodUids:
          type: array
          description: Search for order containing one of the specified payment methods.
          x-stoplight:
            id: ccnqc66zs36no
          items:
            $ref: '#/components/schemas/UID'
        reservationTypes:
          type: array
          x-stoplight:
            id: 4bgyniwf7idih
          items:
            $ref: '#/components/schemas/SalesReservationTypeENUM'
        isCustomerOrder:
          type: boolean
          x-stoplight:
            id: p2kbmvf5ps0wv
          description: 'If true, returns orders with orderlines that has either reservationType=''REQUEST_PURCHASEORDER'' or has a link to a purchaseOrder item'
        hasReservedLines:
          type: boolean
          x-stoplight:
            id: kto9no2p00m8e
          description: |-
            When true, the search returns only orders that include at least one order line with a reservation (reservedQuantity <> 0).
            When omitted or false, reservation state does not affect the results.
        amountRange:
          $ref: '#/components/schemas/AmountRangeSchema'
        orderDateFrom:
          type: string
          x-stoplight:
            id: xb0bfark6jlxx
          format: date-time
        orderDateTo:
          type: string
          x-stoplight:
            id: pj6tjn8du22cz
          format: date-time
    TenantPurchaseOrderSearchSchema:
      description: |-
        Search for purchase orders in all stores on tenant. 

        An empty string will be ignored, and handeled as if the key did not exist in the payload.

        Fuzzy search means that it will try to find words that contains the query string that is supplied. The search is case-insensitive. 
        Example: If you search for "Ol" you will get "Olsen", "Olstad", "Bolset", "Ormebol", kolstad@example.com, etc ..
      title: TenantPurchaseOrderSearchSchema
      type: object
      x-tags:
        - PurchaseOrder
      properties:
        fromDateTime:
          format: date-time
          type: string
        toDateTime:
          format: date-time
          type: string
        orderStatuses:
          type: array
          description: Reference to a list of orderStatuses.
          items:
            $ref: '#/components/schemas/PurchaseOrderStatusENUM'
        storeUids:
          type: array
          description: Reference to a list of storeUids
          items:
            $ref: '#/components/schemas/UID'
        organizationUids:
          type: array
          description: Reference to a list of organizationUids
          items:
            $ref: '#/components/schemas/UID'
        supplierUid:
          $ref: '#/components/schemas/UID'
        query:
          type: string
          x-stoplight:
            id: h97ct5qj8x82s
        productUids:
          type: array
          x-stoplight:
            id: rbl5ndhth0llk
          items:
            $ref: '#/components/schemas/UID'
        hasConfirmedReceivements:
          type: boolean
          x-stoplight:
            id: k5ty4aqd4iq3j
    TenantOrderSearchSchema:
      description: |-
        Search for orders in all stores on tenant. 

        An empty string will be ignored, and handled as if the key did not exist in the payload.

        Fuzzy search means that it will try to find words that contains the query string that is supplied. The search is case-insensitive. 
        Example: If you search for "Ol" you will get "Olsen", "Olstad", "Bolset", "Ormebol", kolstad@example.com, etc ..
      x-stoplight:
        id: m23m9r5h3yt7s
      title: TenantOrderSearchSchema
      type: object
      x-tags:
        - Order
      properties:
        storeUids:
          type: array
          x-stoplight:
            id: quy5k901btklw
          items:
            $ref: '#/components/schemas/UID'
        organizationUids:
          type: array
          x-stoplight:
            id: 6wgidn4rz7dkl
          items:
            $ref: '#/components/schemas/UID'
        customerQuery:
          description: 'Search for orders containting this customer. The customer can be specific by firstname, lastname, phonenumber or email. This is a fuzzy search.'
          type: string
        customerUid:
          $ref: '#/components/schemas/UID'
        fromDateTime:
          format: date-time
          type: string
          deprecated: true
        createdAtFrom:
          format: date-time
          type: string
        settledAtFrom:
          format: date-time
          type: string
        lastModifiedAtFrom:
          format: date-time
          type: string
        orderNumber:
          description: Search for an order with a specific ordernumber. This is an exact lookup
          type: string
        externalOrderNumber:
          description: Search for an order with a specific externalOrderNumber. This is an exact lookup
          type: string
        externalVoucherNumber:
          description: Search for an order with a specific externalVouchermber. This is an exact lookup
          type: string
        productSku:
          description: Search for orders containing the product. This must be a SKU and is an exact lookup.
          type: string
        toDateTime:
          format: date-time
          type: string
          deprecated: true
        createdAtTo:
          format: date-time
          type: string
        settledAtTo:
          format: date-time
          type: string
        lastModifiedAtTo:
          format: date-time
          type: string
        tenantUserUids:
          type: array
          x-stoplight:
            id: wwr51dpibkgg7
          items:
            $ref: '#/components/schemas/UID'
        orderStates:
          type: array
          description: Reference to a list of orderStates.
          items:
            $ref: '#/components/schemas/OrderOrderStateENUM'
        settleStates:
          type: array
          description: Reference to a list of settleStates.
          items:
            $ref: '#/components/schemas/OrderSettleStateENUM'
        deliveryStates:
          type: array
          description: Reference to an array of deliveryStates.
          items:
            $ref: '#/components/schemas/OrderDeliveryStateENUM'
        orderStatuses:
          type: array
          description: Reference to a list of orderStatuses.
          items:
            $ref: '#/components/schemas/OrderStatusENUM'
        orderTypes:
          type: array
          description: Reference to a list of orderTypes
          items:
            $ref: '#/components/schemas/OrderTypeENUM'
        orderHandlingStates:
          x-stoplight:
            id: bxasgpytb0jod
          type: array
          items:
            $ref: '#/components/schemas/HandlingStateENUM'
        orderHandlingUids:
          x-stoplight:
            id: q0x5rhua8n7bl
          type: array
          items:
            $ref: '#/components/schemas/UID'
        deliverFromStoreUids:
          type: array
          x-stoplight:
            id: z6g2o0gqjg72r
          items:
            $ref: '#/components/schemas/UID'
        query:
          type: string
          x-stoplight:
            id: un91mkfs3j7xt
          description: General fuzzy search.
        productUids:
          type: array
          x-stoplight:
            id: 3y6oa8pc66v3j
          items:
            $ref: '#/components/schemas/UID'
        tenantPaymentMethodUids:
          type: array
          description: Search for order containing one of the specified payment methods.
          items:
            $ref: '#/components/schemas/UID'
        reservationTypes:
          type: array
          x-stoplight:
            id: jw4kclezazhql
          items:
            $ref: '#/components/schemas/SalesReservationTypeENUM'
        isCustomerOrder:
          type: boolean
          x-stoplight:
            id: mi50eeiuqv8nb
          description: 'If true, returns orders with orderlines that has either reservationType=''REQUEST_PURCHASEORDER'' or has a link to a purchaseOrder item'
        hasReservedLines:
          type: boolean
          x-stoplight:
            id: 3m15dsybo9z7x
          description: |-
            When true, the search returns only orders that include at least one order line with a reservation (reservedQuantity <> 0).
            When omitted or false, reservation state does not affect the results.
        amountRange:
          $ref: '#/components/schemas/AmountRangeSchema'
        orderDateFrom:
          type: string
          x-stoplight:
            id: pzph92mg3nkr5
          format: date-time
        orderDateTo:
          type: string
          x-stoplight:
            id: h8jtvwvp4r40t
          format: date-time
    TenantOrderReceiptSearchSchema:
      description: |-
        Search for order receipts in all stores on tenant. 

        An empty string will be ignored, and handled as if the key did not exist in the payload.

        Fuzzy search means that it will try to find words that contains the query string that is supplied. The search is case-insensitive. 
        Example: If you search for "Ol" you will get "Olsen", "Olstad", "Bolset", "Ormebol", kolstad@example.com, etc ..
      x-stoplight:
        id: frmuf3zxk8o4b
      title: TenantOrderReceiptSearchSchema
      type: object
      x-tags:
        - Order
      properties:
        storeUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        organizationUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        customerQuery:
          description: 'Search for orders containting this customer. The customer can be specific by firstname, lastname, phonenumber or email. This is a fuzzy search.'
          type: string
        customerUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        settledAtFrom:
          format: date-time
          type: string
        orderNumber:
          description: Search for an order receipt on an order with a specific ordernumber. This is an exact lookup
          type: string
        voucherNumber:
          description: 'Deprecated: Use voucherNumbers instead.'
          type: string
          deprecated: true
        voucherNumbers:
          description: Search for multiple order receipts by voucher numbers. This is an exact lookup
          type: array
          x-stoplight:
            id: 78om1rk0pc2ns
          items:
            x-stoplight:
              id: z189z0p636qox
            type: string
        productSkus:
          description: Search for order receipts containing the products. These must be SKUs and is an exact lookup.
          type: array
          items:
            $ref: '#/components/schemas/UID'
        tenantPaymentMethodUids:
          description: Search for order receipts containing one of the specified payment methods.
          type: array
          items:
            $ref: '#/components/schemas/UID'
        settledAtTo:
          format: date-time
          type: string
        tenantUserUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        deliveryStates:
          type: array
          description: Reference to an array of deliveryStates.
          items:
            $ref: '#/components/schemas/OrderDeliveryStateENUM'
        query:
          type: string
          description: General fuzzy search.
        productUids:
          type: array
          x-stoplight:
            id: zoabukfj1m13t
          items:
            $ref: '#/components/schemas/UID'
        amountRange:
          $ref: '#/components/schemas/AmountRangeSchema'
        hasUnpaidInvoices:
          type: boolean
          x-stoplight:
            id: tx9cbg9em3vil
          description: 'When this is set to true, only unpaid receipts/invoices will be in the response.'
        settlementExternalPaymentReferences:
          type: array
          x-stoplight:
            id: 8jd04f7akkoq9
          description: Search for receipts with settlement with the specified external payment reference.
          items:
            x-stoplight:
              id: thbb8m1exhq7i
            type: string
    OrderSettleStateENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Settlement not started|
        | IN_PROGRESS | Settlement is in progress and the order cannot be changed|
        | COMPLETE | Settlement is complete|
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
      title: OrderSettleStateENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    OrderSettlementCreateSchema:
      description: Create a new settlement
      x-stoplight:
        id: uwkvc7uvs3fe4
      title: OrderSettlementCreateSchema
      type: object
      x-tags:
        - Order
      required:
        - amount
        - storePaymentMethodUid
      properties:
        amount:
          description: 'in cents, e.g. 1,50 as 150'
          type: integer
        deviceIdentifier:
          type: string
        externalId:
          description: External reference for the settlement
          type: string
        parameters:
          description: 'Refer to each payment type''s options for available parameters, e.g. ''mobile'' for VIPPS.'
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterRequestSchema'
        storePaymentMethodUid:
          $ref: '#/components/schemas/OptionalUID'
        settlementUid:
          $ref: '#/components/schemas/UID'
    OrderSettlementUpdateSchema:
      description: Update settlement details
      x-stoplight:
        id: fy7oic22yoe6j
      title: OrderSettlementUpdateSchema
      type: object
      x-tags:
        - Order
      properties:
        externalId:
          description: External reference for the settlement
          type: string
        parameters:
          description: 'Refer to each payment type''s options for available parameters, e.g. ''mobile'' for VIPPS.'
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterRequestSchema'
    SettlementCreateRequestSchema:
      description: Create a new settlement
      x-stoplight:
        id: ifv3byu7w5jz9
      title: SettlementCreateRequestSchema
      type: object
      required:
        - amount
        - settlementCode
      properties:
        amount:
          description: 'in cents, e.g. 1,50 as 150'
          type: integer
        externalId:
          description: External reference for the settlement
          type: string
        settlementCode:
          type: string
          x-stoplight:
            id: 8jnsjjcrilwz4
        parameters:
          description: 'Refer to each payment type''s options for available parameters, e.g. ''mobile'' for VIPPS.'
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterRequestSchema'
        settlementUid:
          $ref: '#/components/schemas/UID'
    SettlementRefundCreateRequestSchema:
      description: Create a new settlement refund
      x-stoplight:
        id: ifv3byu7w5jz9
      title: SettlementRefundCreateRequestSchema
      type: object
      required:
        - amount
        - settlementCode
        - referencingSettlementUid
      properties:
        amount:
          description: 'in cents, e.g. 1,50 as 150'
          type: integer
        externalId:
          description: External reference for the settlement
          type: string
        settlementCode:
          type: string
          x-stoplight:
            id: 8jnsjjcrilwz4
        parameters:
          description: 'Refer to each payment type''s options for available parameters, e.g. ''mobile'' for VIPPS.'
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterRequestSchema'
        settlementUid:
          description: The settlement uid
          $ref: '#/components/schemas/UID'
        referencingSettlementUid:
          description: The settlement that is being refunded
          $ref: '#/components/schemas/UID'
    OrderSettlementImportSchema:
      description: |
        Create a new settlement from external source.
        Legal paymentMethods: PAYMENT_GATEWAY, INVOICE, ROUNDING and all EXTERNAL payment methods
      title: OrderSettlementImportSchema
      type: object
      x-tags:
        - Order
      required:
        - amount
      properties:
        amount:
          description: Amount to settle in øre
          type: integer
        externalId:
          description: External reference for the settlement
          type: string
        externalPaymentReference:
          description: 'Reference to payment, ex: reference to an Adyen payment id. Possible use: Refund directly from Flow Retail'
          type: string
        settlementUid:
          $ref: '#/components/schemas/UID'
        settledAt:
          format: date-time
          type: string
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterRequestSchema'
        settlementCode:
          x-stoplight:
            id: nhj97dnnoe4ve
          type: string
          description: 'If storePaymentMethodUid is not set in the request, this value will be used to find the storePaymentMethod'
        status:
          allOf:
            - $ref: '#/components/schemas/OrderImportSettlementStatusENUM'
          default: CAPTURED
        storeSettlementIssuer:
          $ref: '#/components/schemas/OrderImportStoreSettlementIssuerSchema'
    OrderSettlementTotalsSchema:
      title: OrderSettlementTotalsSchema
      type: object
      x-tags:
        - Order
      required:
        - change
        - remaining
        - remainingRounded
        - totals
        - remainingPrePayment
        - remainingAuthorizedAmount
      properties:
        change:
          description: Total change amount returned to customer.
          type: integer
        remaining:
          type: integer
          description: 'Remaining amount to be paid '
        remainingRounded:
          description: Rounded value of remaining amount. For use with CASH
          type: integer
        totals:
          type: integer
          description: Sum of all approved settlements
        remainingPrePayment:
          type: integer
          x-stoplight:
            id: 68oxw5ygcj5v5
        remainingAuthorizedAmount:
          type: integer
          x-stoplight:
            id: ss58f0j8g63h8
          description: Authorized amount available for capture.
    OrderStatusChangeSchema:
      description: ''
      properties:
        status:
          $ref: '#/components/schemas/OrderChangeStatusENUM'
      required:
        - status
      title: OrderStatusChangeSchema
      type: object
    OrderStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | OPEN | Order is open and beeing edited by someone|
        | PARKED | Order is parked|
        | CANCELED | Order is canceled/deleted|
        | DELIVERED | Order is completely delivered|
        | READY_FOR_DELIVERY | Order is settled and ready to be delivered|
        | UNPAID | Order is settled with settlementCode INVOICE and is not fully paid|
        | CONFIRMED | Order is confirmed|
      enum:
        - OPEN
        - PARKED
        - CANCELED
        - READY_FOR_DELIVERY
        - DELIVERED
        - UNPAID
        - CONFIRMED
      title: OrderStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    AssetCategoryENUM:
      title: AssetCategoryENUM
      x-stoplight:
        id: hzzq14vpq3mac
      enum:
        - BRANDING
        - SERVICE
        - REPORT
        - OTHER
      type: string
    AssetResponseSchema:
      title: AssetResponseSchema
      x-stoplight:
        id: spbdfune62w90
      allOf:
        - required:
            - assetUid
            - name
            - description
            - category
            - isPublic
            - publicUrl
            - mimeType
            - size
            - serviceOrderUids
          properties:
            assetUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: o4bllvybk4ap9
            description:
              type: string
              x-stoplight:
                id: psswl6rkmngcf
            category:
              $ref: '#/components/schemas/AssetCategoryENUM'
            isPublic:
              type: boolean
              x-stoplight:
                id: 3vg6jrh6w5apn
            publicUrl:
              type: string
              x-stoplight:
                id: 1b97vulu4xa7s
            mimeType:
              type: string
              x-stoplight:
                id: nbf7ykj7nsrhu
            size:
              type: string
              x-stoplight:
                id: ctp73iobkoug0
            serviceOrderUids:
              x-stoplight:
                id: b2xmpmvgt5o6e
              type: array
              items:
                $ref: '#/components/schemas/UID'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
      type: object
    OrderTotalsResponseSchema:
      description: ''
      x-stoplight:
        id: 6dblj20uf1i32
      properties:
        costTotal:
          type: integer
        grandTotal:
          type: integer
        grossProfitAmount:
          description: Sum of all totalGrossProfitAmount on each product item.
          type: integer
        grossProfitPercentage:
          description: ''
          type: integer
        specifiedVat:
          items:
            $ref: '#/components/schemas/OrderTotalsVatSpecificationSchema'
          type: array
        subtotal:
          type: integer
        totalDiscount:
          type: integer
        totalVat:
          type: integer
      required:
        - subtotal
        - totalDiscount
        - specifiedVat
        - totalVat
        - grandTotal
        - grossProfitAmount
        - grossProfitPercentage
        - costTotal
      title: OrderTotals
      type: object
      x-tags:
        - Order
    OrderTotalsImportSchema:
      description: ''
      properties:
        grandTotal:
          type: integer
        totalDiscount:
          type: integer
        totalVat:
          type: integer
      required:
        - grandTotal
      title: OrderTotalsImportSchema
      type: object
      x-stoplight:
        id: khckiks6u9jx0
      x-tags:
        - Order
    OrderTotalsVatSpecificationSchema:
      description: ''
      x-stoplight:
        id: amt09xmots3y0
      properties:
        vatAmount:
          description: Total amount with this vatRate.
          type: integer
        vatDescription:
          description: Description of vat rate.
          type: string
        vatRate:
          description: VatRate in percentage.
          type: integer
      required:
        - vatRate
        - vatAmount
        - vatDescription
      title: OrderTotalsVatSpecificationSchema
      type: object
      x-tags:
        - Order
    OrderTypeENUM:
      enum:
        - OFFER
        - ORDER
        - PAYMENT
      title: OrderTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    Paging:
      description: |-
        totalCount The total number of items in the result set.

        pageSize The number of items per page.

        pageNumber The current page in the result set.
      properties:
        pageNumber:
          type: integer
        pageSize:
          type: integer
        totalCount:
          type: integer
      required:
        - totalCount
        - pageSize
        - pageNumber
      title: Paging
      type: object
    PayexCallbackDataSchema:
      title: PayexCallbackDataSchema
      properties:
        account_option:
          type: integer
        acquirer_institution_short:
          type: string
        additional_data_p44:
          type: string
        additional_data_p62:
          type: string
        additional_data_rsp_p44:
          type: string
        additional_data_rsp_p48:
          type: string
        agreement_number:
          type: string
        aid:
          type: string
        aip:
          type: string
        amount_authorized:
          type: integer
        amount_other:
          type: integer
        amount_surcharge:
          type: integer
        app_cryptogram:
          type: string
        app_effective_date:
          type: string
        app_transaction_counter:
          type: string
        arn:
          type: string
        authorization_code:
          type: string
        authorization_method:
          type: string
        backlight_intensity:
          type: string
        cancel_response:
          type: boolean
        card_acceptor_id:
          type: string
        card_expiry_date:
          type: string
        card_token:
          type: string
        card_tokens_request:
          type: boolean
        cardholder_id_text:
          type: string
        cardholder_language:
          type: string
        cardholder_signature_text:
          type: string
        cashier_id:
          type: integer
        chip_app_version_number:
          type: string
        chip_last_online_atc:
          type: string
        cless_ott:
          type: string
        cless_ready:
          type: string
        cless_uid:
          type: string
        currency_code:
          type: string
        cvr:
          type: string
        dankort_ble_transaction:
          type: boolean
        dialog_input:
          type: string
        display_message:
          type: integer
        echo_data:
          type: string
        ecr_text:
          type: string
        ecr_text_align:
          type: integer
        ecr_text_fixed_width:
          type: boolean
        ecr_text_font:
          type: integer
        entry_mode:
          type: string
        event_id:
          type: integer
        event_text:
          type: string
        fallback:
          type: boolean
        file_to_send:
          type: integer
        flash_free_size:
          type: string
        flash_total_size:
          type: string
        forced_online:
          type: boolean
        host_issuer_id:
          type: string
        host_issuer_id_as_int:
          type: integer
        id_method:
          type: string
        insert_card_message:
          type: integer
        is_gambling_transaction:
          type: boolean
        issuer_application_data:
          type: string
        issuer_card_name:
          type: string
        issuer_id:
          type: string
        issuer_id_as_int:
          type: integer
        max_input_length:
          type: integer
        merchant_name_and_location:
          type: string
        mockup:
          type: boolean
        model:
          type: string
        offline_count:
          type: integer
        offline_first_datetime:
          type: string
        offline_total_amount:
          type: integer
        online:
          type: boolean
        os_sdk_version:
          type: string
        pan:
          type: string
        pan_sequence_number:
          type: string
        payment_application_name:
          type: string
        pci_version:
          type: string
        phone_number:
          type: string
        pos_entry_mode:
          type: string
        posref:
          type: string
        primary_card_token:
          type: string
        printer_status:
          type: integer
        read_card_id:
          type: integer
        receipt_printing:
          type: boolean
        receipt_string_customer:
          type: string
        receipt_string_merchant:
          type: string
        receipt_strings:
          type: string
        recurring:
          type: boolean
        response_code:
          type: string
        retrieval_reference_number:
          type: string
        secondary_card_token:
          type: string
        serial:
          type: string
        session_number:
          type: string
        software_branch:
          type: string
        software_changeset:
          type: string
        software_date:
          type: string
        software_version_name:
          type: string
        stan:
          type: string
        stc_loyalty:
          type: string
        supermerchant_operator_id:
          type: string
        surcharge_flat_fee:
          type: integer
        surcharge_percent:
          type: integer
        terminal_datetime:
          type: string
        terminal_id:
          type: string
        timespan_end:
          type: string
        timespan_start:
          type: string
        tip_amount:
          type: integer
        tms_to_use:
          type: integer
        tms_update_result:
          type: integer
        track_1:
          type: string
        track_1_discretionary:
          type: string
        track_2:
          type: string
        track_2_equivalent:
          type: string
        track_3:
          type: string
        transaction_date:
          type: string
        transaction_status:
          type: integer
        transaction_time:
          type: string
        transaction_type:
          type: string
        tsi:
          type: string
        tvr:
          type: string
        upc:
          type: string
        vat_amount:
          type: integer
      x-stoplight:
        id: 5tectmgs6ei3h
    PayexCallbackReceiptSchema:
      title: PayexCallbackReceiptSchema
      properties:
        agreement_name:
          type: string
        agreement_number:
          type: string
        app_effective_date:
          type: string
        app_transaction_counter:
          type: string
        authorization_method:
          type: string
        base_amount_receipt:
          type: string
        bax:
          type: string
        bax_sign_text:
          type: string
        cardholder_id_text:
          type: string
        cardholder_signature_text:
          type: string
        cardholder_string:
          type: string
        cash_amount_receipt:
          type: string
        cashback_text_customer:
          type: string
        cashback_text_merchant:
          type: string
        cashier_signature_text:
          type: string
        chip_last_online_atc:
          type: string
        cless_indication_label:
          type: string
        currency_text:
          type: string
        dankort_ble_wallet:
          type: string
        footer_msg_customer:
          type: string
        footer_msg_merchant:
          type: string
        id_method:
          type: string
        is_copy_text_customer:
          type: string
        is_copy_text_merchant:
          type: string
        merchant_id:
          type: string
        merchant_id_customer_text:
          type: string
        merchant_id_merchant_text:
          type: string
        online:
          type: string
        pan_customer:
          type: string
        pan_entry_mode:
          type: string
        pan_merchant:
          type: string
        ref_bax_receipt:
          type: string
        response_code:
          type: string
        retrieval_reference_number:
          type: string
        save_receipt_customer:
          type: string
        save_receipt_merchant:
          type: string
        stan:
          type: string
        surcharge_amount_receipt:
          type: string
        surcharge_text_customer:
          type: string
        surcharge_text_merchant:
          type: string
        terminal_id:
          type: string
        terminal_id_customer_text:
          type: string
        terminal_id_merchant_text:
          type: string
        tip_amount_receipt:
          type: string
        tip_text_customer:
          type: string
        tip_text_merchant:
          type: string
        total_amount_receipt:
          type: string
        total_text_customer:
          type: string
        total_text_merchant:
          type: string
        transaction_date:
          type: string
        transaction_name:
          type: string
        transaction_name_customer:
          type: string
        transaction_name_merchant:
          type: string
        transaction_time:
          type: string
        trx_status_customer:
          type: string
        trx_status_desc_customer:
          type: string
        trx_status_desc_merchant:
          type: string
        trx_status_merchant:
          type: string
        tsi:
          type: string
        tvr:
          type: string
        user_text_customer:
          type: string
        user_text_merchant:
          type: string
      x-stoplight:
        id: yl2sz6c3em6jy
      type: object
    PayexCallbackReceiptStringsSchema:
      title: PayexCallbackReceiptStringsSchema
      properties:
        receipt_string_customer:
          type: string
        receipt_string_merchant:
          type: string
      x-stoplight:
        id: 7buct7u63b706
      type: object
    PayexCallbackSchema:
      title: PayexCallbackSchema
      properties:
        data:
          $ref: '#/components/schemas/PayexCallbackDataSchema'
        message_type:
          type: string
        receipt:
          $ref: '#/components/schemas/PayexCallbackReceiptSchema'
        receipt_strings:
          $ref: '#/components/schemas/PayexCallbackReceiptStringsSchema'
        version:
          type: integer
      x-stoplight:
        id: iit15d58ghu8b
      required:
        - version
        - message_type
      type: object
    PaymentMethodResponseSchema:
      x-stoplight:
        id: n0ovn519eabb5
      title: PaymentMethodResponseSchema
      type: object
      required:
        - allowRefund
        - allowSale
        - allowAmount
        - allowCashback
        - allowPrepayment
        - requireExclusiveUse
        - name
        - parameters
        - paymentCode
      properties:
        allowRefund:
          type: boolean
          description: 'if true, paymentMethod can be used when settling a refund.'
        allowSale:
          type: boolean
          description: 'if true, paymentMethod can be used when settling a sale.'
        allowAmount:
          type: boolean
          description: 'if true, settled amount can be != remainingAmount set when settling a sale.'
        allowCashback:
          type: boolean
          description: 'if true, settlement amount can be higher than remainingAmount when settling a sale.'
        allowPrepayment:
          type: boolean
          description: 'if true, payment method is allowed as a prepayment settlement'
          x-stoplight:
            id: cm5wtop98xldy
        requireExclusiveUse:
          type: boolean
          x-stoplight:
            id: k5mpyeikc0koe
          description: defines whether or not the payment method can be used in combination with other payment methods.
        name:
          type: string
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodParameterSchema'
        paymentCode:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
    PaymentMethodCodeENUM:
      enum:
        - CASH
        - INVOICE
        - VIPPS
        - ADYEN_CARD
        - PAYEX_CARD
        - SANTANDER
        - EXTERNAL
        - TRANSFER_MONEY
        - FLOWGIFTCARD
        - STORE_CREDIT
        - STRIPE_CARD
        - TWO_INVOICE
        - NETS_CARD
        - VERIFONE_CARD
        - FOREIGN_CASH
        - SWISH
        - DINTERO_PAYMENT_LINK
        - BRITANNIA
        - PREPAYMENT
        - SOFTPAY_CARD
        - PAYMENT_GATEWAY
        - LOYALTY_POINTS
        - PAYEX_GIFTCARD
      title: PaymentMethodCodeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    PaymentMethodParameterSchema:
      description: PaymentMethodParameter
      x-stoplight:
        id: rv63hovb4mn2z
      properties:
        key:
          type: string
        keyType:
          $ref: '#/components/schemas/PaymentMethodParameterTypeENUM'
        name:
          type: string
        required:
          type: boolean
      required:
        - keyType
        - key
        - name
        - required
      title: PaymentMethodParameterSchema
      type: object
    PaymentMethodParameterTypeENUM:
      description: ''
      enum:
        - TEXT
        - INTEGER
        - DATE
        - MOBILE
        - MODULUS10
        - MODULUS11
      title: PaymentMethodParameterTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    PriceResponseSchema:
      x-stoplight:
        id: 1srats17rp6d3
      title: PriceResponseSchema
      type: object
      x-tags:
        - Prices
      required:
        - createdAt
        - lastModifiedAt
        - fromDate
        - toDate
        - price
        - priceUid
        - pricelistUid
        - productExternalId
        - productUid
        - productName
        - productRecommendedRetailPrice
        - productSku
        - brand
        - productGroup
      properties:
        createdAt:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        fromDate:
          format: date-time
          type: string
        toDate:
          format: date-time
          type: string
          x-stoplight:
            id: ke6gs4vbb1ojg
        price:
          type: integer
        priceUid:
          $ref: '#/components/schemas/UID'
        pricelistUid:
          $ref: '#/components/schemas/UID'
        productExternalId:
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
        productName:
          type: string
        productRecommendedRetailPrice:
          type: integer
          nullable: true
        productSku:
          type: string
        brand:
          $ref: '#/components/schemas/PriceBrandResponseSchema'
        productGroup:
          $ref: '#/components/schemas/PriceProductGroupResponseSchema'
    PriceBatchErrorPriceSchema:
      properties:
        errorCode:
          type: string
        message:
          type: string
        priceUid:
          $ref: '#/components/schemas/UID'
      required:
        - priceUid
        - errorCode
        - message
      title: PriceBatchErrorPriceSchema
      type: object
    BatchErrorProductSchema:
      properties:
        errorCode:
          type: string
        message:
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
      x-stoplight:
        id: 3e5415a47ebcf
      required:
        - productUid
        - errorCode
        - message
      title: BatchErrorProductSchema
      type: object
    BatchErrorSOAAmountSchema:
      x-tags:
        - SOA
      title: BatchErrorSOAAmountSchema
      type: object
      required:
        - errorCode
        - message
        - productUid
        - storeUid
        - soaUid
      properties:
        errorCode:
          type: string
        message:
          type: string
        productUid:
          $ref: '#/components/schemas/OptionalUID'
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        soaUid:
          $ref: '#/components/schemas/OptionalUID'
        soaAmountUid:
          $ref: '#/components/schemas/OptionalUID'
    CustomerBatchErrorSchema:
      x-stoplight:
        id: m3z7rubonde8t
      title: CustomerBatchErrorSchema
      type: object
      required:
        - errorCode
        - message
        - customerUid
      properties:
        errorCode:
          type: string
        message:
          type: string
        customerUid:
          $ref: '#/components/schemas/UID'
    PriceBatchRequestSchema:
      properties:
        create:
          items:
            $ref: '#/components/schemas/PriceCreateSchema'
          type: array
        delete:
          items:
            $ref: '#/components/schemas/PriceDeleteBatchSchema'
          type: array
        update:
          items:
            $ref: '#/components/schemas/PriceUpdateBatchSchema'
          type: array
        upsert:
          items:
            $ref: '#/components/schemas/PriceCreateSchema'
          type: array
      x-stoplight:
        id: b3nwqmzccyjkx
      title: PriceBatchRequestSchema
      type: object
      x-tags:
        - Prices
    SOAAmountBatchRequestSchema:
      title: SOAAmountBatchRequestSchema
      type: object
      x-tags:
        - SOA
      required:
        - upsert
      properties:
        upsert:
          type: array
          items:
            $ref: '#/components/schemas/SOAAmountBatchCreateRequestSchema'
    CustomerBatchRequestSchema:
      x-stoplight:
        id: jdurqzg57c9zu
      title: CustomerBatchRequestSchema
      type: object
      x-tags:
        - Prices
      properties:
        create:
          type: array
          items:
            $ref: '#/components/schemas/CustomerCreateSchema'
        delete:
          type: array
          items:
            $ref: '#/components/schemas/CustomerBatchDeleteSchema'
        update:
          type: array
          items:
            $ref: '#/components/schemas/CustomerCreateSchema'
        upsert:
          type: array
          items:
            $ref: '#/components/schemas/CustomerCreateSchema'
    PriceBatchResponseSchema:
      properties:
        create:
          $ref: '#/components/schemas/BatchResponseItemProductSchema'
        delete:
          $ref: '#/components/schemas/PriceBatchResponseItemPriceSchema'
        update:
          $ref: '#/components/schemas/PriceBatchResponseItemPriceSchema'
        upsert:
          $ref: '#/components/schemas/BatchResponseItemProductSchema'
      x-stoplight:
        id: 5m7pshjz5t09f
      required:
        - create
        - upsert
        - update
        - delete
      title: PriceBatchResponseSchema
      type: object
      x-tags:
        - Prices
    SOAAmountBatchResponseSchema:
      title: SOAAmountBatchResponseSchema
      type: object
      x-tags:
        - SOA
      required:
        - upsert
      properties:
        upsert:
          $ref: '#/components/schemas/BatchResponseItemSOAAmountSchema'
    CustomerBatchResponseSchema:
      x-stoplight:
        id: l6etujutjmhtn
      title: CustomerBatchResponseSchema
      type: object
      x-tags:
        - Prices
      required:
        - create
        - delete
        - update
        - upsert
      properties:
        create:
          $ref: '#/components/schemas/CustomerBatchResponseItemSchema'
        delete:
          $ref: '#/components/schemas/CustomerBatchResponseItemSchema'
        update:
          $ref: '#/components/schemas/CustomerBatchResponseItemSchema'
        upsert:
          $ref: '#/components/schemas/CustomerBatchResponseItemSchema'
    PriceBatchResponseItemPriceSchema:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/PriceBatchErrorPriceSchema'
          type: array
        success:
          type: integer
      required:
        - success
        - errors
      title: PriceBatchResponseItemPriceSchema
      type: object
    CustomerBatchResponseItemSchema:
      x-stoplight:
        id: zt3c19ck6qdri
      title: CustomerBatchResponseItemSchema
      type: object
      required:
        - errors
        - success
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/CustomerBatchErrorSchema'
        success:
          type: integer
    BatchResponseItemProductSchema:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/BatchErrorProductSchema'
          type: array
        success:
          type: integer
      x-stoplight:
        id: qes0m6b211153
      required:
        - success
        - errors
      title: BatchResponseItemProductSchema
      type: object
    BatchResponseItemSOAAmountSchema:
      x-tags:
        - SOA
      title: BatchResponseItemSOAAmountSchema
      type: object
      required:
        - errors
        - success
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BatchErrorSOAAmountSchema'
        success:
          type: integer
    PriceCreateSchema:
      title: PriceCreateSchema
      x-stoplight:
        id: yccgjb4jg55iq
      type: object
      required:
        - price
        - productUid
      properties:
        fromDate:
          format: date-time
          type: string
          description: Optional. Will be set to current time if it is not in the request
        toDate:
          format: date-time
          type: string
          description: |-
            Optional. 
            Set to null if not in request.
          x-stoplight:
            id: rafxi1zqii3is
        price:
          type: integer
        productUid:
          $ref: '#/components/schemas/UID'
        priceUid:
          $ref: '#/components/schemas/UID'
    PriceDeleteBatchSchema:
      properties:
        priceUid:
          $ref: '#/components/schemas/UID'
      required:
        - priceUid
      title: PriceDeleteBatchSchema
      type: object
    CustomerBatchDeleteSchema:
      x-stoplight:
        id: 6q1md2vpfupwp
      title: CustomerBatchDeleteSchema
      type: object
      required:
        - customerUid
      properties:
        customerUid:
          $ref: '#/components/schemas/UID'
    PriceUpdateSchema:
      x-stoplight:
        id: b1phs90t6s88v
      title: PriceUpdateSchema
      type: object
      required:
        - price
      properties:
        fromDate:
          format: date-time
          type: string
          description: Optional. Will be set to current time if it is not in the request
        toDate:
          format: date-time
          type: string
          x-stoplight:
            id: z0tnbjfjxue7m
          description: |-
            Optional. 
            Set to null if not in request.
        price:
          type: integer
    PriceUpdateBatchSchema:
      type: object
      title: PriceUpdateBatchSchema
      required:
        - fromDate
        - price
        - priceUid
      properties:
        fromDate:
          format: date-time
          type: string
          description: Optional. Will be set to current time if it is not in the request
        toDate:
          format: date-time
          type: string
          x-stoplight:
            id: 10q7fpq119rge
          description: |-
            Optional. 
            Set to null if not in request.
        price:
          type: integer
        priceUid:
          $ref: '#/components/schemas/UID'
    PricelistResponseSchema:
      properties:
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        pricelistUid:
          $ref: '#/components/schemas/UID'
      x-stoplight:
        id: r45c2fidstv65
      required:
        - pricelistUid
        - name
        - externalId
        - createdAt
        - lastModifiedAt
      title: PricelistResponseSchema
      type: object
    SOAResponseSchema:
      x-tags:
        - SOA
      title: SOAResponseSchema
      type: object
      required:
        - name
        - externalId
        - soaUid
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        name:
          type: string
        externalId:
          type: string
        soaUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
          x-stoplight:
            id: 7cpj754jidzkp
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: e2bppljc8stuy
    SOAAmountResponseSchema:
      x-tags:
        - SOA
      title: SOAAmountResponseSchema
      type: object
      required:
        - soaUid
        - storeUid
        - productUid
        - soaAmountUid
        - amount
        - fromDateTime
        - toDateTime
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        soaUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
        soaAmountUid:
          $ref: '#/components/schemas/UID'
        amount:
          type: integer
          x-stoplight:
            id: szncpxy4vtgbk
        fromDateTime:
          type: string
          x-stoplight:
            id: zetwfsyxn0u68
          format: date-time
        toDateTime:
          type: string
          x-stoplight:
            id: 7qeawvmhstsrt
          format: date-time
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
          x-stoplight:
            id: ejn309txz3u5b
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: l4zloq3yeeuyr
    PricelistCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/PricelistUpdateRequestSchema'
        - properties:
            pricelistUid:
              $ref: '#/components/schemas/UID'
      x-stoplight:
        id: t5z7r4v5byv6o
      type: object
      title: PricelistCreateRequestSchema
    SOACreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/SOAUpdateRequestSchema'
        - properties:
            soaUid:
              $ref: '#/components/schemas/UID'
          required:
            - name
      x-tags:
        - SOA
      title: SOACreateRequestSchema
      type: object
    SOAAmountBatchCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/SOAAmountCreateRequestSchema'
        - properties:
            soaUid:
              $ref: '#/components/schemas/UID'
          required:
            - soaUid
      x-tags:
        - SOA
      title: SOAAmountBatchCreateRequestSchema
      type: object
    PricelistUpdateRequestSchema:
      title: PricelistUpdateRequestSchema
      x-stoplight:
        id: o8e4vi4ky08ar
      type: object
      properties:
        externalId:
          type: string
        name:
          type: string
    SOAUpdateRequestSchema:
      title: SOAUpdateRequestSchema
      x-tags:
        - SOA
      type: object
      properties:
        externalId:
          type: string
        name:
          type: string
    SOAAmountUpdateRequestSchema:
      title: SOAAmountUpdateRequestSchema
      x-tags:
        - SOA
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
        amount:
          type: integer
          x-stoplight:
            id: 2j1ucc6pbx1xh
        fromDateTime:
          type: string
          x-stoplight:
            id: zazdvn1j9fz78
          format: date-time
        toDateTime:
          type: string
          x-stoplight:
            id: dw2fw9qer4h0f
          format: date-time
    SOAAmountCreateRequestSchema:
      title: SOAAmountCreateRequestSchema
      x-stoplight:
        id: a016647c22bc6
      x-tags:
        - SOA
      type: object
      required:
        - storeUid
        - productUid
        - amount
        - fromDateTime
        - toDateTime
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
        amount:
          type: integer
          x-stoplight:
            id: 2j1ucc6pbx1xh
        fromDateTime:
          type: string
          x-stoplight:
            id: zazdvn1j9fz78
          format: date-time
        toDateTime:
          type: string
          x-stoplight:
            id: dw2fw9qer4h0f
          format: date-time
        soaAmountUid:
          $ref: '#/components/schemas/UID'
    ProductCreateSchema:
      title: ProductCreateSchema
      x-stoplight:
        id: yynoyyi7b6kk5
      type: object
      x-tags:
        - Product
      required:
        - brandUid
        - name
        - productGroupUid
        - productType
        - sku
        - vatCodeUid
      properties:
        allowCredit:
          type: boolean
        allowPurchase:
          type: boolean
        allowQuantity:
          type: boolean
        allowNegativePrice:
          type: boolean
          x-stoplight:
            id: e8vp217edqwde
        allowSale:
          $ref: '#/components/schemas/AllowSaleENUM'
        allowSaleDate:
          format: date-time
          type: string
        allowDelivery:
          $ref: '#/components/schemas/AllowDeliveryENUM'
        allowDeliveryDate:
          format: date-time
          type: string
          x-stoplight:
            id: kqzd4j2gf57vp
        allowOrderSpecificCost:
          type: boolean
          x-stoplight:
            id: kiflnoiifz2qn
          description: Allow to set costPrice on product when adding or updating the product to an order
        allowOrderSpecificName:
          type: boolean
          x-stoplight:
            id: kiflnoiifz2qn
          description: Allow to set name on product when adding or updating the product to an order
        allowDiscount:
          type: boolean
          x-stoplight:
            id: bm1dr5f9nu8t3
          description: Allow to set a discount on this product
        availableForWeb:
          type: boolean
          x-stoplight:
            id: p1rr1djf5tmxk
          description: The product is available for web sale
        brandUid:
          $ref: '#/components/schemas/UID'
        calculationFactor:
          type: integer
        customerAgeRestriction:
          type: integer
          x-stoplight:
            id: 1ljmgr61povt7
          description: Age restriction for the customer. 0 = no restriction
        categoryUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        description:
          type: string
        discontinuedFrom:
          type: string
          x-stoplight:
            id: 1iy3j38w9o2bg
          format: date-time
        externalId:
          type: string
        externalInfo:
          type: string
        externalUrl:
          type: string
        gtins:
          type: array
          items:
            $ref: '#/components/schemas/ProductGtinSchema'
        height:
          type: integer
        internalInfo:
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        length:
          type: integer
        media:
          type: array
          x-stoplight:
            id: ouy1u88t4ou7j
          items:
            $ref: '#/components/schemas/ProductMediaCreateSchema'
        name:
          type: string
        priceOverride:
          type: boolean
          description: The price can be set on the orderline without adding it as a discount
        productUid:
          $ref: '#/components/schemas/UID'
        productGroupUid:
          $ref: '#/components/schemas/UID'
        productType:
          $ref: '#/components/schemas/ProductTypeENUM'
        optionProperties:
          x-stoplight:
            id: 3u0b6nkbniypw
          type: array
          items:
            $ref: '#/components/schemas/ProductOptionPropertyRequestSchema'
        textProperties:
          x-stoplight:
            id: y9of4910z5638
          type: array
          items:
            $ref: '#/components/schemas/ProductTextPropertyRequestSchema'
        recommendedRetailPrice:
          type: integer
        requiredVariantPropertyUids:
          description: A list of propertyUids that are required for each variant of this product.
          type: array
          items:
            $ref: '#/components/schemas/UID'
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        sellOnlyAsAddon:
          x-stoplight:
            id: 3vjpw3f1wqo0x
          type: boolean
        shortDescription:
          type: string
        sku:
          type: string
        manufacturerSku:
          type: string
          x-stoplight:
            id: 7pvhndbhx0drw
        unitLabel:
          type: string
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        weight:
          type: integer
        width:
          type: integer
        requirements:
          $ref: '#/components/schemas/ProductRequirementRequestSchema'
        commission:
          type: integer
          description: A commission to be paid to the supplier after delivery.
        visibility:
          $ref: '#/components/schemas/ProductVisibilityENUM'
        productWarrantyUid:
          $ref: '#/components/schemas/OptionalUID'
        excludeFromStatistics:
          type: boolean
          x-stoplight:
            id: x6q9bz41dbytf
          default: false
        purchasePrice:
          type: integer
          x-stoplight:
            id: amfm4y4i7qdxw
        currencyPurchasePrice:
          $ref: '#/components/schemas/CurrencyPurchasePriceUpdateSchema'
        numberOfPieces:
          type: integer
          x-stoplight:
            id: opv16piyzeviw
          description: Indicates how many packages/parts the product consists of.
        limitToStoreUids:
          $ref: '#/components/schemas/LimitToStoreUidsSchema'
        tradeUnit:
          type: integer
          x-stoplight:
            id: u8c3sqmy4b72c
        properties:
          type: array
          items:
            $ref: '#/components/schemas/ProductPropertiesSchema'
    ProductResponseSchema:
      title: ProductResponseSchema
      x-stoplight:
        id: xb13lddvmo0ps
      type: object
      x-tags:
        - Product
      required:
        - allowAddon
        - allowCredit
        - allowNegativePrice
        - allowPurchase
        - allowQuantity
        - allowSale
        - allowSaleDate
        - allowDelivery
        - allowDeliveryDate
        - allowOrderSpecificCost
        - allowOrderSpecificName
        - allowDiscount
        - availableForWeb
        - brandUid
        - brandName
        - calculationFactor
        - categoryUids
        - createdAt
        - customerAgeRestriction
        - description
        - discontinuedFrom
        - externalId
        - externalInfo
        - externalUrl
        - gtins
        - height
        - internalInfo
        - lastModifiedAt
        - ledgerNumber
        - length
        - name
        - optionProperties
        - priceOverride
        - productGroupUid
        - productGroupPath
        - productUid
        - productType
        - recommendedRetailPrice
        - requiredVariantPropertyUids
        - serialNoRequired
        - sellOnlyAsAddon
        - shortDescription
        - sku
        - manufacturerSku
        - suppliers
        - textProperties
        - unitLabel
        - variantProductUids
        - variantParentProductUid
        - variants
        - vatCodeUid
        - weight
        - width
        - links
        - parents
        - requirements
        - coverImage
        - imageCount
        - relevance
        - visibility
        - commission
        - productWarrantyUid
        - excludeFromStatistics
        - purchasePrice
        - numberOfPieces
        - limitToStoreUids
        - tradeUnit
      properties:
        allowAddon:
          type: boolean
          description: This product has addons
        allowCredit:
          type: boolean
          description: The product is allowed to credit
        allowNegativePrice:
          type: boolean
          x-stoplight:
            id: 1ipqr5xhhl18k
          description: There can be set a negative price
        allowPurchase:
          type: boolean
          description: The product is allowed to be purchased from a supplier
        allowQuantity:
          type: boolean
          description: It is allowed to change quantity
        allowSale:
          $ref: '#/components/schemas/AllowSaleENUM'
        allowSaleDate:
          format: date-time
          type: string
        allowDelivery:
          $ref: '#/components/schemas/AllowDeliveryENUM'
        allowDeliveryDate:
          format: date-time
          type: string
          x-stoplight:
            id: if9wdxn52anpq
        allowOrderSpecificCost:
          type: boolean
          x-stoplight:
            id: vctaryhdagm64
          description: Allow to set costPrice on product when adding or updating the product to an order
        allowOrderSpecificName:
          type: boolean
          x-stoplight:
            id: kiflnoiifz2qn
          description: Allow to set name on product when adding or updating the product to an order
        allowDiscount:
          type: boolean
          x-stoplight:
            id: 69mar9u7x468w
          description: Allow to add discount to this product.
        availableForWeb:
          type: boolean
          x-stoplight:
            id: 2lwsh48pio351
          description: The product is available for web sale
        brandUid:
          $ref: '#/components/schemas/UID'
        brandName:
          type: string
        calculationFactor:
          type: integer
        categoryUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        customerAgeRestriction:
          type: integer
          x-stoplight:
            id: eej3nrolmc2g6
          description: Age restriction for the customer. 0 = no restriction
        description:
          type: string
        discontinuedFrom:
          type: string
          x-stoplight:
            id: j2txngmbcizpu
          format: date-time
          nullable: true
        externalId:
          type: string
        externalInfo:
          type: string
        externalUrl:
          type: string
        gtins:
          type: array
          items:
            $ref: '#/components/schemas/ProductGtinResponseSchema'
        height:
          type: integer
        internalInfo:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        length:
          type: integer
        name:
          type: string
        optionProperties:
          description: A list or propertyUids that extends the product with new properties.
          type: array
          items:
            $ref: '#/components/schemas/ProductPropertyResponseSchema'
        priceOverride:
          type: boolean
          description: Allow to override the price without setting a discount.
        productGroupUid:
          $ref: '#/components/schemas/UID'
        productGroupPath:
          type: array
          items:
            $ref: '#/components/schemas/ProductGroupPathSchema'
        productUid:
          $ref: '#/components/schemas/UID'
        productType:
          $ref: '#/components/schemas/ProductTypeENUM'
        recommendedRetailPrice:
          type: integer
        requiredVariantPropertyUids:
          description: A list of propertyUids that are required for each variant of this product.
          type: array
          items:
            type: string
            x-stoplight:
              id: gd3r4ebrgp9l4
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        sellOnlyAsAddon:
          x-stoplight:
            id: jmat9ba26uekb
          type: boolean
          description: Can only be sold as an addon product
        shortDescription:
          type: string
        sku:
          type: string
        manufacturerSku:
          type: string
          x-stoplight:
            id: sjvz88ts0fo4d
        suppliers:
          type: array
          items:
            $ref: '#/components/schemas/ProductSupplierResponseSchema'
        textProperties:
          description: A list or propertyUids that extends the product with new properties.
          type: array
          items:
            $ref: '#/components/schemas/ProductPropertyResponseSchema'
        unitLabel:
          type: string
        variantProductUids:
          type: array
          x-stoplight:
            id: 87trlvacxw32o
          items:
            $ref: '#/components/schemas/UID'
        variantParentProductUid:
          $ref: '#/components/schemas/UID'
        variants:
          description: A list of productUids that make up variants of this product.
          type: array
          deprecated: true
          items:
            type: string
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        weight:
          type: integer
        width:
          type: integer
        links:
          type: array
          description: List of links owned by this product
          items:
            $ref: '#/components/schemas/ProductLinkResponseSchema'
        parents:
          type: array
          description: List of parents to this product
          items:
            $ref: '#/components/schemas/ProductLinkResponseSchema'
        requirements:
          $ref: '#/components/schemas/ProductRequirementResponseSchema'
        coverImage:
          $ref: '#/components/schemas/CoverImageSchema'
        imageCount:
          type: integer
          x-stoplight:
            id: 54d0h7okddgdd
        relevance:
          type: number
          x-stoplight:
            id: e0vh37ytpw5fv
        visibility:
          $ref: '#/components/schemas/ProductVisibilityENUM'
        commission:
          type: integer
          description: A commission to be paid to the supplier after delivery.
        productWarrantyUid:
          $ref: '#/components/schemas/UID'
        excludeFromStatistics:
          type: boolean
          x-stoplight:
            id: xvzv0xhfag2ar
        purchasePrice:
          type: integer
          x-stoplight:
            id: q1phqdbxobbt1
        numberOfPieces:
          type: integer
          x-stoplight:
            id: wxs5bnxa82v14
          description: Indicates how many packages/parts the product consists of.
        limitToStoreUids:
          $ref: '#/components/schemas/LimitToStoreUidsSchema'
        tradeUnit:
          type: integer
          x-stoplight:
            id: ytrt5eh8wue15
    ProductGroupResponseSchema:
      title: ProductGroupResponseSchema
      x-stoplight:
        id: 974u51wkgrx0j
      type: object
      x-tags:
        - Product
      properties:
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        productCount:
          description: Number of products in this productGroup.
          type: integer
        productGroupUid:
          $ref: '#/components/schemas/UID'
        scope:
          $ref: '#/components/schemas/ProductGroupScopeENUM'
      required:
        - createdAt
        - externalId
        - lastModifiedAt
        - name
        - parentUid
        - productCount
        - productGroupUid
        - scope
    ProductGroupCreateRequestSchema:
      title: ProductGroupCreateRequestSchema
      type: object
      required:
        - name
      properties:
        name:
          type: string
        productGroupUid:
          $ref: '#/components/schemas/UID'
        externalId:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        scope:
          $ref: '#/components/schemas/ProductGroupScopeENUM'
    ProductGroupUpdateRequestSchema:
      title: ProductGroupUpdateRequestSchema
      x-stoplight:
        id: 2khv0hnkt2u9l
      type: object
      x-tags:
        - Product
      properties:
        name:
          type: string
        externalId:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        scope:
          $ref: '#/components/schemas/ProductGroupScopeENUM'
    OrderPrintTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        |RECEIPT| Print sales receipt|
        |EXCHANGENOTE| Print exchange note|
        |GIFTCARD| Print giftcard barcode|
        |PICKUP| Print a pickup label/note |
      minLength: 1
      title: OrderPrintTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - RECEIPT
        - EXCHANGENOTE
        - GIFTCARD
        - PICKUP
      x-stoplight:
        id: mj5pmc2zrsvzg
    AvailablePrintActionENUM:
      description: |
        Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as
        [`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or
        [`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients
        do not confuse `printer.type` with entries in `availablePrintActions`.

        | ENUM | Meaning | Maps to |
        | ---- | ------- | ------- |
        | RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |
        | EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |
        | GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |
        | PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |
        | PRODUCT | Product label print | Print-products API |
        | CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |
      minLength: 1
      title: AvailablePrintActionENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - RECEIPT
        - EXCHANGENOTE
        - GIFTCARD_BARCODE
        - PICKUP_LABEL
        - PRODUCT
        - CUSTOMER_MEMBERSHIP_CARD
      x-stoplight:
        id: p7k2m9qx1vnrb
    OrderEmailTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECEIPT | Send sales receipt as email|
        | GIFTCARD | Send giftcard as email|
      minLength: 1
      title: OrderEmailTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - RECEIPT
        - GIFTCARD
    OrderPdfTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        |RECEIPT|Make pdf file from sales receipt|
      minLength: 1
      title: OrderPdfTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - RECEIPT
    ProductGroupScopeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | SALE | Sale product scope. Default|
        | SERVICE | Service product scope|
        | NO_SEARCH | Not visible in search scope|
      minLength: 1
      title: ProductGroupScopeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - SALE
        - SERVICE
        - NO_SEARCH
    ProductGroupPathSchema:
      title: ProductGroupPathSchema
      type: object
      x-tags:
        - Product
      properties:
        name:
          type: string
        parentUid:
          $ref: '#/components/schemas/UID'
        productGroupUid:
          $ref: '#/components/schemas/UID'
      required:
        - name
        - parentUid
        - productGroupUid
    ProductGtinSchema:
      properties:
        gtin:
          type: string
        primary:
          type: boolean
        type:
          type: string
      x-stoplight:
        id: zg1j9c3rkyg04
      title: ProductGtinSchema
      type: object
      x-tags:
        - Product
    ProductGtinResponseSchema:
      x-stoplight:
        id: rk8j9bsriarbi
      title: ProductGtinResponseSchema
      type: object
      x-tags:
        - Product
      required:
        - gtin
        - primary
        - type
      properties:
        gtin:
          type: string
        primary:
          type: boolean
        type:
          type: string
    ProductLinkResponseSchema:
      title: ProductLinkResponseSchema
      allOf:
        - properties:
            productLinkUid:
              $ref: '#/components/schemas/UID'
          required:
            - productLinkUid
          type: object
        - $ref: '#/components/schemas/ProductLinkRequestSchema'
    ProductGroupLinkResponseSchema:
      title: ProductGroupLinkResponseSchema
      x-stoplight:
        id: 3284b0eb34245
      allOf:
        - properties:
            productGroupLinkUid:
              $ref: '#/components/schemas/UID'
          required:
            - productGroupLinkUid
          type: object
        - $ref: '#/components/schemas/ProductGroupLinkRequestSchema'
    ProductLinkParentResponseSchema:
      title: ProductLinkParentResponseSchema
      x-stoplight:
        id: hj54v9j5o9768
      type: object
      properties:
        productLinkUid:
          $ref: '#/components/schemas/UID'
        linkType:
          $ref: '#/components/schemas/ProductLinkTypeENUM'
        parentProductUid:
          $ref: '#/components/schemas/UID'
      required:
        - productLinkUid
        - linkType
        - parentProductUid
    ProductLinkRequestSchema:
      title: ProductLinkRequestSchema
      type: object
      x-stoplight:
        id: 7q4hmxkagyj27
      properties:
        linkType:
          $ref: '#/components/schemas/ProductLinkTypeENUM'
        productUid:
          $ref: '#/components/schemas/UID'
        productLinkUid:
          $ref: '#/components/schemas/UID'
      required:
        - linkType
        - productUid
    ProductGroupLinkRequestSchema:
      title: ProductGroupLinkRequestSchema
      type: object
      x-stoplight:
        id: hci2qytwhpg6u
      properties:
        linkType:
          $ref: '#/components/schemas/ProductGroupLinkTypeENUM'
        productGroupLinkUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
      required:
        - linkType
        - productUid
    ProductGroupLinkTypeENUM:
      enum:
        - INSURANCE
        - SERVICE
        - ACCESSORY
        - FREIGHT_SERVICE
      title: ProductGroupLinkTypeENUM
      type: string
      x-internal: false
      x-stoplight:
        id: k5i5b9eb4ypw5
      x-tags:
        - ENUM
    ProductLinkTypeENUM:
      enum:
        - INSURANCE
        - ALTERNATIVE
        - ACCESSORY
        - SPARE_PART
        - SERVICE
        - AUTO_ADD
        - FREIGHT_SERVICE
      title: ProductLinkTypeENUM
      type: string
      x-internal: false
      x-stoplight:
        id: qfb39ha478uib
      x-tags:
        - ENUM
      description: |-
        | ENUM | Description |
        |-------|-------------|
        | INSURANCE | Insurance products allowed to be added to the product |
        | ALTERNATIVE | Alternative products if the main product is not available |
        | ACCESSORY | Accessory products for the main product |
        | SPARE_PART | Spare part that can be used to repair the product |
        | SERVICE | Service products. |
        | FREIGHT_SERVICE | Freight service products. |
        | AUTO_ADD | The products will be auto added to the order and can not be removed without removing the main product. |
    ProductPropertyRequestSchema:
      description: 'Add a new product option to a product. If a property is of type TEXT, propertyText is mandatory, else propertyOptionUid is mandatory'
      title: ProductPropertyRequestSchema
      type: object
      x-tags:
        - Properties
      properties:
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyOptionUid:
          $ref: '#/components/schemas/UID'
        propertyText:
          type: string
        productPropertyUid:
          $ref: '#/components/schemas/UID'
      required:
        - propertyUid
    ProductTextPropertyRequestSchema:
      description: Add a new product text property to a product.
      x-stoplight:
        id: jjns2scjuy8nl
      title: ProductTextPropertyRequestSchema
      type: object
      x-tags:
        - Properties
      required:
        - propertyUid
        - propertyText
      properties:
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyText:
          type: string
        productPropertyUid:
          $ref: '#/components/schemas/UID'
    ProductOptionPropertyRequestSchema:
      description: Add a new product option to a product.
      x-stoplight:
        id: aj9egh2d29p8e
      title: ProductOptionPropertyRequestSchema
      type: object
      x-tags:
        - Properties
      required:
        - propertyUid
        - propertyOptionUid
      properties:
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyOptionUid:
          $ref: '#/components/schemas/UID'
        productPropertyUid:
          $ref: '#/components/schemas/UID'
    ProductTextPropertyUpdateRequestSchema:
      description: Update a new text option to a product
      x-stoplight:
        id: 7hb9miz02xopr
      title: ProductTextPropertyUpdateRequestSchema
      type: object
      properties:
        propertyText:
          type: string
      required:
        - propertyText
      x-tags:
        - ProductProperties
    ProductTextPropertyUpdateSchema:
      description: Update a text property on a product.
      x-stoplight:
        id: jnzd9aaa5e8x4
      title: ProductTextPropertyUpdateSchema
      type: object
      x-tags:
        - ProductProperties
      required:
        - propertyUid
        - propertyText
      properties:
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyText:
          type: string
    ProductReportResponseItemSchema:
      allOf:
        - $ref: '#/components/schemas/StoreReportTurnoverItemSchema'
        - type: object
          required:
            - brandUid
            - brandName
            - productGroupUid
            - productGroupName
            - productUid
            - sku
            - lastSettledAt
          properties:
            brandUid:
              $ref: '#/components/schemas/UID'
            brandName:
              type: string
            productGroupUid:
              $ref: '#/components/schemas/UID'
            productGroupName:
              type: string
            productUid:
              $ref: '#/components/schemas/UID'
            sku:
              type: string
            lastSettledAt:
              type: string
              x-stoplight:
                id: wlubcs0tvu5yy
              format: date-time
      title: ProductReportResponseItemSchema
    ProductReportResponseSchema:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ProductReportResponseItemSchema'
          type: array
      required:
        - items
      title: ProductReportResponseSchema
      type: object
    ProductSearchSchema:
      title: ProductSearchSchema
      x-stoplight:
        id: esi5k21s17c7i
      type: object
      x-tags:
        - Product
      description: ProductSearch model
      properties:
        exactMatch:
          type: boolean
        productGroupUids:
          type: array
          description: Filter on product group UIDs
          items:
            $ref: '#/components/schemas/UID'
        productGroupScopes:
          type: array
          items:
            $ref: '#/components/schemas/ProductGroupScopeENUM'
        query:
          type: string
        supplierUid:
          $ref: '#/components/schemas/UID'
        propertyUids:
          type: array
          description: Filter on property UIDs a product must be linked to
          items:
            $ref: '#/components/schemas/UID'
        propertyOptionUids:
          type: array
          description: Filter on property option UIDs a product must be linked to
          items:
            $ref: '#/components/schemas/UID'
        productUids:
          type: array
          description: A list of productUids to search for
          items:
            $ref: '#/components/schemas/UID'
        hideVariants:
          type: boolean
          x-stoplight:
            id: 8rs3qtuvi1oow
          description: Do not search in variant products.
        visibility:
          type: array
          x-stoplight:
            id: ea1jkunq3hlev
          description: Filter on product visibility
          items:
            $ref: '#/components/schemas/ProductVisibilityENUM'
        includeDiscontinued:
          type: boolean
          x-stoplight:
            id: bbpes3cd3hu9a
        productTypes:
          type: array
          x-stoplight:
            id: nt8dzj55b5ls9
          items:
            $ref: '#/components/schemas/ProductTypeENUM'
        hideNotAllowPurchase:
          type: boolean
          x-stoplight:
            id: 2sxjuqwapq8ws
          description: 'when true, only show products with `allowPurchase` = true'
        brandUids:
          type: array
          x-stoplight:
            id: eiid6p89lgveh
          items:
            $ref: '#/components/schemas/UID'
        productSkus:
          type: array
          x-stoplight:
            id: 9yuu7njvqldaq
          items:
            x-stoplight:
              id: s9288xhpgh3is
            type: string
        hasSoaAmounts:
          type: boolean
          x-stoplight:
            id: n6aqv016y9jzg
          description: |-
            optionally filter on products that have 
            or do not have SOA amounts
    ProductSearchStockDetailsSchema:
      description: ''
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        productName:
          type: string
        productSku:
          type: string
        totalQuantityReserved:
          type: integer
        totalQuantityStock:
          type: integer
        warehouseStockDetails:
          items:
            $ref: '#/components/schemas/WarehouseStockDetailsResponseSchema'
          type: array
      required:
        - productUid
        - productSku
        - productName
        - totalQuantityStock
        - totalQuantityReserved
        - warehouseStockDetails
      title: ProductSearchStockDetailsSchema
      type: object
      x-tags:
        - Product
    ProductSearchStockRequestSchema:
      title: ProductSearchStockRequestSchema
      x-stoplight:
        id: 0rg397ad1v6vb
      type: object
      properties:
        productUids:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/UID'
        productSkus:
          minItems: 1
          type: array
          items:
            type: string
        storeUids:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/UID'
        warehouseUids:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/UID'
    ProductSupplierResponseSchema:
      title: ProductSupplierResponseSchema
      type: object
      x-tags:
        - Product
      required:
        - name
        - supplierUid
        - supplierProductUid
        - purchasePrice
        - currency
        - supplierSku
      properties:
        name:
          type: string
        supplierUid:
          $ref: '#/components/schemas/UID'
        supplierProductUid:
          $ref: '#/components/schemas/UID'
        purchasePrice:
          type: integer
          x-stoplight:
            id: rewpfo2w5kx9u
        currency:
          type: string
          x-stoplight:
            id: d8dsnx65200kj
          description: ISO 4217 code
        supplierSku:
          type: string
          x-stoplight:
            id: nrogqlfepse4r
    ProductTypeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | STOCK | Price*quantity|
        | NO_STOCK | No quantity|
        | CONFIGURABLE | Master configurable product|
        | FLOWGIFTCARD | Flow Giftcard product|
        | PAYEX_GIFTCARD | Payex Giftcard product|
        | NON_PHYSICAL | Non physical product|
        | PACKAGE_FIXED | Packaged product with fixed content|
        | PACKAGE_DYNAMIC | Packaged product with dynamic content|
      enum:
        - STOCK
        - NO_STOCK
        - CONFIGURABLE
        - FLOWGIFTCARD
        - PAYEX_GIFTCARD
        - NON_PHYSICAL
        - PACKAGE_FIXED
        - PACKAGE_DYNAMIC
      minLength: 1
      title: ProductTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ProductUpdateSchema:
      title: ProductUpdateSchema
      x-stoplight:
        id: hyapmgqw8y15x
      type: object
      x-tags:
        - Product
      properties:
        allowCredit:
          type: boolean
        allowPurchase:
          type: boolean
        allowQuantity:
          type: boolean
        allowNegativePrice:
          type: boolean
          x-stoplight:
            id: s0r4vef2nc3x9
        allowSale:
          $ref: '#/components/schemas/AllowSaleENUM'
        allowSaleDate:
          format: date-time
          type: string
        allowDelivery:
          $ref: '#/components/schemas/AllowDeliveryENUM'
        allowDeliveryDate:
          format: date-time
          type: string
          x-stoplight:
            id: bvzmwf3vn9zic
        allowOrderSpecificCost:
          type: boolean
          x-stoplight:
            id: vctaryhdagm64
          description: Allow to set costPrice on product when adding or updating the product to an order
        allowOrderSpecificName:
          type: boolean
          x-stoplight:
            id: kiflnoiifz2qn
          description: Allow to set name on product when adding or updating the product to an order
        allowDiscount:
          type: boolean
          x-stoplight:
            id: n77v2ifl7fmwo
          description: Allow to set a discount on this product
        availableForWeb:
          type: boolean
          x-stoplight:
            id: ula1kpbw68499
          description: The product is available for web sale
        brandUid:
          $ref: '#/components/schemas/UID'
        calculationFactor:
          type: integer
        categoryUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        customerAgeRestriction:
          type: integer
          x-stoplight:
            id: 1ldci8uej59t4
          description: Age restriction for the customer. 0 = no restriction
        description:
          type: string
        discontinuedFrom:
          type: string
          x-stoplight:
            id: j0xz1fvzaey3m
          format: date-time
          nullable: true
        externalId:
          type: string
        externalInfo:
          type: string
        externalUrl:
          type: string
        gtins:
          type: array
          items:
            $ref: '#/components/schemas/ProductGtinSchema'
        height:
          type: integer
        internalInfo:
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        length:
          type: integer
        name:
          type: string
        priceOverride:
          type: boolean
          description: Allow to override the price on an order
        productGroupUid:
          $ref: '#/components/schemas/UID'
        recommendedRetailPrice:
          type: integer
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        sellOnlyAsAddon:
          x-stoplight:
            id: w5prukkfc7rn4
          type: boolean
        requiredVariantPropertyUids:
          type: array
          x-stoplight:
            id: mwbmlizipmfbm
          items:
            $ref: '#/components/schemas/UID'
        shortDescription:
          type: string
        sku:
          type: string
        manufacturerSku:
          type: string
          x-stoplight:
            id: 23t4jfbcczjwa
        textProperties:
          x-stoplight:
            id: 874prqegs1enp
          type: array
          items:
            $ref: '#/components/schemas/ProductTextPropertyUpdateSchema'
        unitLabel:
          type: string
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        weight:
          type: integer
        width:
          type: integer
        requirements:
          $ref: '#/components/schemas/ProductRequirementRequestSchema'
        coverImage:
          type: object
          x-stoplight:
            id: sz2fcrq3gov0j
          properties:
            productMediaUid:
              $ref: '#/components/schemas/UID'
        commission:
          type: integer
          description: A commission to be paid to the supplier after delivery.
        visibility:
          $ref: '#/components/schemas/ProductVisibilityENUM'
        productWarrantyUid:
          $ref: '#/components/schemas/OptionalUID'
        excludeFromStatistics:
          type: boolean
          x-stoplight:
            id: ahpar3mg70tjs
        purchasePrice:
          type: integer
          x-stoplight:
            id: ukalaer1q2s2m
        currencyPurchasePrice:
          $ref: '#/components/schemas/CurrencyPurchasePriceUpdateSchema'
        numberOfPieces:
          type: integer
          x-stoplight:
            id: x5f6d7ud069iz
          description: Indicates how many packages/parts the product consists of.
        limitToStoreUids:
          $ref: '#/components/schemas/LimitToStoreUidsSchema'
        tradeUnit:
          type: integer
          x-stoplight:
            id: w6fxn40l3lil6
        properties:
          type: array
          items:
            $ref: '#/components/schemas/ProductPropertiesSchema'
    PropertyResponseSchema:
      description: 'A product property that extends the product with new data. It comes in three data types; TEXT, LIST or CHECKLIST.'
      title: PropertyResponseSchema
      type: object
      x-tags:
        - Properties
      properties:
        createdAt:
          format: date-time
          type: string
        propertyName:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        propertyUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/PropertyTypeENUM'
        externalId:
          type: string
      required:
        - createdAt
        - propertyName
        - lastModifiedAt
        - propertyUid
        - type
      x-stoplight:
        id: uhoqjzfn1ziv5
    PropertyCreateRequestSchema:
      description: 'A product property that extends the product with new data. It comes in three data types; TEXT, LIST or CHECKLIST.'
      x-stoplight:
        id: xz754xhknswxv
      title: PropertyCreateRequestSchema
      type: object
      x-tags:
        - Properties
      properties:
        propertyName:
          type: string
        type:
          $ref: '#/components/schemas/PropertyTypeENUM'
        externalId:
          type: string
        propertyUid:
          $ref: '#/components/schemas/UID'
      required:
        - propertyName
        - type
    PropertySearchRequestSchema:
      title: PropertySearchRequestSchema
      type: object
      x-tags:
        - Properties
      properties:
        propertyName:
          type: string
        type:
          $ref: '#/components/schemas/PropertyTypeENUM'
        externalId:
          type: string
    PropertyUpdateRequestSchema:
      description: Update name and externalId for a property
      x-stoplight:
        id: gpnrr6qz75dnf
      title: PropertyUpdateRequestSchema
      type: object
      x-tags:
        - Properties
      properties:
        propertyName:
          type: string
        externalId:
          type: string
    PropertyOptionResponseSchema:
      description: 'An pre-defined, allowed value for a list or checklist property.'
      x-stoplight:
        id: 26jas4jngwyxn
      title: PropertyOptionResponseSchema
      type: object
      x-tags:
        - Properties
      properties:
        createdAt:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyName:
          type: string
        propertyOptionUid:
          $ref: '#/components/schemas/UID'
        propertyOptionName:
          type: string
        externalId:
          type: string
      required:
        - createdAt
        - lastModifiedAt
        - propertyUid
        - propertyName
        - propertyOptionUid
        - propertyOptionName
        - externalId
    PropertyOptionCreateRequestSchema:
      x-tags:
        - Properties
      allOf:
        - $ref: '#/components/schemas/PropertyOptionUpdateRequestSchema'
        - properties:
            propertyOptionUid:
              $ref: '#/components/schemas/UID'
          type: object
      title: PropertyOptionCreateRequestSchema
    PropertyOptionUpdateRequestSchema:
      description: 'An pre-defined, allowed value for a list or checklist property.'
      x-tags:
        - Properties
      title: PropertyOptionUpdateRequestSchema
      type: object
      properties:
        propertyOptionName:
          type: string
        externalId:
          type: string
      required:
        - propertyOptionName
    PropertyTypeENUM:
      description: |-
        Describes the type of property a product can have.

        |ENUM      | Description |
        | ---------------- | ------------ |
        | TEXT | A single text line such as an URL to a product manual or a reminder to the cashier/salesperson.|
        | SINGLESELECT | A list of values where a product can only have one at any given time.|
        | MULTISELECT | A list of values where a product can have none or several at any given time.|
      enum:
        - TEXT
        - SINGLESELECT
        - MULTISELECT
      title: PropertyTypeENUM
      type: string
      x-tags:
        - ENUM
    PurchaseOrderResponseSchema:
      x-stoplight:
        id: gwys8bcf3l908
      title: PurchaseOrderResponseSchema
      type: object
      x-tags:
        - Purchase
      required:
        - createdAt
        - createdBy
        - deliveryAddress
        - deliveryCity
        - deliveryCountryCode
        - deliveryName
        - deliveryPostalCode
        - externalId
        - items
        - lastModifiedAt
        - lastModifiedBy
        - note
        - purchaseNumber
        - purchaseOrderUid
        - status
        - storeUid
        - storeName
        - supplierUid
        - supplierName
        - discountRate
        - freight
        - currency
        - supplierReferenceNumber
        - invoiceAddress
        - reserveAfter
        - hasConfirmedReceivements
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        deliveryAddress:
          type: string
        deliveryCity:
          type: string
        deliveryCountryCode:
          type: string
        deliveryName:
          type: string
        deliveryPostalCode:
          type: string
        externalId:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderItemResponseSchema'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        note:
          type: string
        purchaseNumber:
          description: Reference to a customer order
          type: string
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        status:
          $ref: '#/components/schemas/PurchaseOrderStatusENUM'
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        supplierUid:
          $ref: '#/components/schemas/UID'
        supplierName:
          type: string
        discountRate:
          type: integer
          x-stoplight:
            id: jkn3d23sym2ks
        freight:
          type: integer
          x-stoplight:
            id: o40rqdtlkeq23
        currency:
          $ref: '#/components/schemas/PurchaseOrderCurrencySchema'
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: 5cjo1xenj64yh
          description: Supplier reference number
        invoiceAddress:
          $ref: '#/components/schemas/PurchaseOrderInvoiceAddress'
        reserveAfter:
          type: string
          x-stoplight:
            id: qvi1rvfemjiph
          description: |-
            If set, items in this purchase 
            order cannot be reserved before this date.
          format: date-time
          nullable: true
        hasConfirmedReceivements:
          type: boolean
          x-stoplight:
            id: a1q7sxm3rxb0p
    PurchaseOrderCreateSchema:
      title: PurchaseOrderCreateSchema
      type: object
      required:
        - supplierUid
      properties:
        deliveryAddress:
          type: string
        deliveryCity:
          type: string
        deliveryCountryCode:
          type: string
        deliveryName:
          type: string
        deliveryPostalCode:
          type: string
        externalId:
          type: string
        note:
          type: string
        status:
          $ref: '#/components/schemas/PurchaseOrderStatusENUM'
        supplierUid:
          $ref: '#/components/schemas/UID'
        discountRate:
          type: integer
          x-stoplight:
            id: d7wkt96uogxcx
        freight:
          type: integer
          x-stoplight:
            id: aoern03babflx
        currency:
          type: string
          x-stoplight:
            id: suhud2w9svnjo
          description: ISO 4217 code
        exchangeRate:
          type: integer
          x-stoplight:
            id: yw988o60xs04n
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        items:
          type: array
          x-stoplight:
            id: 1tpljzwfgyjgs
          items:
            $ref: '#/components/schemas/PurchaseOrderItemCreateSchema'
        autoOrderProposal:
          type: object
          x-stoplight:
            id: 7wfx38qpz4tu8
          description: Generate a purchase order proposal based on min/max
          required:
            - warehouseUid
          properties:
            warehouseUid:
              $ref: '#/components/schemas/UID'
            countReservedItems:
              type: boolean
              default: true
              x-stoplight:
                id: 0mzhge26rtfpk
              description: Wether or not reserved items will be counted as part of existing stock. Defaults to true.
            honorTradeUnits:
              type: boolean
              x-stoplight:
                id: 7t72rmajvbnwt
              description: Quantities are rounded up to trade units for products where defined.
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: n96em0nhota3j
        invoiceAddress:
          $ref: '#/components/schemas/PurchaseOrderInvoiceAddressCreateSchema'
        reserveAfter:
          type: string
          x-stoplight:
            id: vnpwu49dznmle
          format: date-time
          description: |-
            If set, items in this purchase 
            order cannot be reserved before this date.
    PurchaseOrderUpdateSchema:
      title: PurchaseOrderUpdateSchema
      x-stoplight:
        id: n6dizt1h7zzyd
      type: object
      x-tags:
        - Purchase
      properties:
        deliveryAddress:
          type: string
        deliveryCity:
          type: string
        deliveryCountryCode:
          type: string
        deliveryName:
          type: string
        deliveryPostalCode:
          type: string
        externalId:
          type: string
        note:
          type: string
        status:
          $ref: '#/components/schemas/PurchaseOrderStatusENUM'
        supplierUid:
          $ref: '#/components/schemas/UID'
        discountRate:
          type: integer
          x-stoplight:
            id: d7wkt96uogxcx
        freight:
          type: integer
          x-stoplight:
            id: aoern03babflx
        currency:
          type: string
          x-stoplight:
            id: suhud2w9svnjo
          description: ISO 4217 code
        exchangeRate:
          type: integer
          x-stoplight:
            id: yw988o60xs04n
        items:
          type: array
          x-stoplight:
            id: awpy9v73wdlqw
          items:
            $ref: '#/components/schemas/PurchaseOrderItemUpdateQtyDeliveredSchema'
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: dwvs43nz1838i
          description: Supplier reference number
        invoiceAddress:
          $ref: '#/components/schemas/PurchaseOrderInvoiceAddressUpdateSchema'
        reserveAfter:
          type: string
          x-stoplight:
            id: im2vsa0ib4zha
          description: |-
            If set, items in this purchase 
            order cannot be reserved before this date.
          format: date-time
          nullable: true
    PurchaseOrderItemResponseSchema:
      title: PurchaseOrderItemResponseSchema
      x-stoplight:
        id: t7bn26128vhgv
      type: object
      x-tags:
        - Purchase
      required:
        - createdAt
        - createdBy
        - expectedDeliveryDate
        - externalId
        - lastModifiedAt
        - lastModifiedBy
        - productUid
        - productName
        - productSerialNoRequired
        - productSku
        - purchaseOrderItemUid
        - quantityOrdered
        - quantityReceived
        - quantityReserved
        - supplierSku
        - unitPrice
        - receivementItems
        - discountAmount
        - freightAmount
        - unitCost
        - totalLinePrice
        - localCurrency
        - reservations
        - note
        - sortOrder
        - purchaseOrderItemLinks
      properties:
        createdAt:
          type: string
          x-stoplight:
            id: maunblbnktzpr
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: ysjtqywwjvwr6
        expectedDeliveryDate:
          format: date
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: 09mzp6ey13qxq
        productUid:
          $ref: '#/components/schemas/UID'
        productName:
          type: string
        productSerialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        productSku:
          type: string
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        quantityOrdered:
          type: integer
        quantityReceived:
          type: integer
        quantityReserved:
          type: integer
          x-stoplight:
            id: d0ivtklv640lq
        supplierSku:
          type: string
        unitPrice:
          type: integer
          description: unitPrice is in purchase price in order currency before discounts
        receivementItems:
          type: array
          x-stoplight:
            id: vvnw8kaglf3p5
          items:
            $ref: '#/components/schemas/PurchaseReceivementItemResponseSchema'
        discountAmount:
          type: integer
          x-stoplight:
            id: h7ez91cf971mm
          description: The discount amount pr unit
        freightAmount:
          type: integer
          x-stoplight:
            id: hvhpojc4731bl
          description: The portion of the shipping cost pr unit.
        unitCost:
          type: integer
          x-stoplight:
            id: dkqsoeqi0pvhq
          description: The price pr unit including discount and freight. This is what will be used as cost price during receivement.
        totalLinePrice:
          type: integer
          x-stoplight:
            id: rxrsf6w2nwsxz
          description: Total price for all the items including discounts and freight amount.
        currency:
          $ref: '#/components/schemas/DeprecatedPurchaseOrderItemCurrencySchema'
        localCurrency:
          $ref: '#/components/schemas/PurchaseOrderItemCurrencySchema'
        reservations:
          type: array
          x-stoplight:
            id: bk58cmmup3ri5
          items:
            $ref: '#/components/schemas/OrderItemReservationSchema'
        note:
          type: string
          x-stoplight:
            id: dv353sclfvsdb
        sortOrder:
          type: integer
          x-stoplight:
            id: ola63z7u2j8pw
        purchaseOrderItemLinks:
          type: array
          x-stoplight:
            id: 6ew01l07rpqc2
          items:
            $ref: '#/components/schemas/PurchaseOrderItemLinkSchema'
    InternalPurchaseOrderItemResponseSchema:
      title: InternalPurchaseOrderItemResponseSchema
      x-stoplight:
        id: 1meljtmpj7nbd
      type: object
      x-tags:
        - Purchase
      required:
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - product
        - serialnumbers
        - quantityOrdered
        - shipFromWarehouseUid
        - quantitySent
        - quantityReceived
        - receiveToWarehouseUid
        - costPrice
        - internalPurchaseOrderItemUid
      properties:
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        product:
          $ref: '#/components/schemas/InternalPurchaseOrderItemProductResponseSchema'
        serialnumbers:
          type: array
          x-stoplight:
            id: 4f39ea5a3fems
          items:
            x-stoplight:
              id: xx51av41co6m9
            type: string
        quantityOrdered:
          type: integer
        shipFromWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        quantitySent:
          type: integer
          x-stoplight:
            id: t4t2zm0myhdkh
        quantityReceived:
          type: integer
        receiveToWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        costPrice:
          type: integer
          x-stoplight:
            id: 2b9dtnncneufq
        internalPurchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
    PurchaseOrderItemCreateSchema:
      allOf:
        - $ref: '#/components/schemas/PurchaseOrderItemUpdateSchema'
        - properties:
            purchaseOrderItemUid:
              $ref: '#/components/schemas/UID'
            productUid:
              $ref: '#/components/schemas/UID'
            quantityOrdered:
              type: integer
              x-stoplight:
                id: gxp8g65sc2z4n
          required:
            - productUid
            - quantityOrdered
      title: PurchaseOrderItemCreateSchema
      type: object
    InternalPurchaseOrderItemCreateSchema:
      x-stoplight:
        id: bc996h9t2n9kp
      title: InternalPurchaseOrderItemCreateSchema
      type: object
      required:
        - quantityOrdered
      properties:
        quantityOrdered:
          type: integer
        costPrice:
          type: integer
        internalPurchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
    PurchaseOrderItemUpdateSchema:
      title: PurchaseOrderItemUpdateSchema
      x-stoplight:
        id: 90iqcd7781ob1
      type: object
      x-tags:
        - Purchase
      properties:
        expectedDeliveryDate:
          format: date
          type: string
        externalId:
          description: External reference to purchase order line
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
        quantityOrdered:
          type: integer
        supplierSku:
          type: string
        unitPrice:
          type: integer
          description: unitPrice is in purchase order currency
        note:
          type: string
          x-stoplight:
            id: 5kf8jxrzm6ijj
        sortOrder:
          type: integer
          x-stoplight:
            id: ruwmbfwcszino
    InternalPurchaseOrderItemUpdateSchema:
      title: InternalPurchaseOrderItemUpdateSchema
      x-stoplight:
        id: ca6pzhyqydgix
      type: object
      x-tags:
        - Purchase
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        quantityOrdered:
          type: integer
        serialnumbers:
          type: array
          x-stoplight:
            id: 72ecu5s8x967w
          items:
            x-stoplight:
              id: paal8jwigyj4f
            type: string
        costPrice:
          type: integer
          x-stoplight:
            id: fsuxvocal6lga
    InternalPurchaseOrderItemSendSchema:
      title: InternalPurchaseOrderItemSendSchema
      x-stoplight:
        id: i8ftulrr7t25u
      type: object
      x-tags:
        - Purchase
      description: |-
        - quantitySent: Quantity to send from wrehouse
        - warehouseUid: warehouse to send stock from
      required:
        - quantitySent
        - shipFromWarehouseUid
      properties:
        quantitySent:
          type: integer
          description: quantity to send from warehouse
        serialnumbers:
          type: array
          x-stoplight:
            id: u45t21hxzgpzr
          items:
            x-stoplight:
              id: sx96da1467ued
            type: string
        shipFromWarehouseUid:
          $ref: '#/components/schemas/UID'
    InternalPurchaseOrderItemReceiveSchema:
      title: InternalPurchaseOrderItemReceiveSchema
      x-stoplight:
        id: qilcwe7zaqf1c
      type: object
      x-tags:
        - Purchase
      description: |-
        - quantityReceived: Quantity to receive to wrehouse
        - warehouseUid: warehouse to receive stock
      properties:
        quantityReceived:
          type: integer
        receiveToWarehouseUid:
          type: string
          x-stoplight:
            id: c2gamkjkxwz07
      required:
        - quantityReceived
        - receiveToWarehouseUid
    PurchaseOrderStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NEW | Created, but not sent to supplier yet.|
        | SENT_TO_SUPPLIER | Sent to supplier.|
        | CANCELLED_BY_SUPPLIER | The purchase order have been cancelled by the supplier. This status is only applicable for suppliers who are integrated with FlowRetail.|
        | IN_TRANSIT | The goods are in transit. This status is only applicable for suppliers who are integrated with FlowRetail.|
        | PARTIALLY_RECEIVED | Not all goods have been received yet.|
        | RECEIVED | All goods have been received.|
        | CLOSED | No longer able to process purchase order.|
        | CANCELLED_BY_SUPPLIER | Purchase was cancelled by supplier|
      enum:
        - NEW
        - PARTIALLY_RECEIVED
        - RECEIVED
        - SENT_TO_SUPPLIER
        - IN_TRANSIT
        - CLOSED
        - CANCELLED_BY_SUPPLIER
      title: PurchaseOrderStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ReasonResponseSchema:
      x-stoplight:
        id: ztp9xs3h157nd
      title: ReasonResponseSchema
      type: object
      x-tags:
        - Reasons
      required:
        - code
        - description
        - reasonUid
        - requiresReference
        - type
      properties:
        code:
          type: string
        createdAt:
          format: date-time
          type: string
        description:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        reasonUid:
          $ref: '#/components/schemas/UID'
        requiresReference:
          x-stoplight:
            id: 85vnrjodbxc6h
          type: boolean
          description: Requires that a discountReference is filled when using this reason
        type:
          $ref: '#/components/schemas/ReasonTypeENUM'
    ReasonCreateRequestSchema:
      type: object
      x-tags:
        - Reasons
      title: ReasonCreateRequestSchema
      required:
        - code
        - description
        - type
      properties:
        code:
          type: string
        description:
          type: string
        type:
          $ref: '#/components/schemas/ReasonTypeENUM'
        requiresReference:
          x-stoplight:
            id: wnyyuy3oe8n84
          type: boolean
          description: Requires that a discountReference is filled when using this reason
        reasonUid:
          $ref: '#/components/schemas/UID'
    ReasonUpdateRequestSchema:
      title: ReasonUpdateRequestSchema
      x-stoplight:
        id: 30lwyxc526o7d
      type: object
      x-tags:
        - Reasons
      properties:
        code:
          type: string
        description:
          type: string
        requiresReference:
          type: boolean
          x-stoplight:
            id: 6w7e4g40lnnep
          description: Requires that a discountReference is filled when using this reason
    ReasonTypeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | DISCOUNT | Reason for discounts|
        | RETURN | Reason for returns|
        | RMA | Reason for return to supplier|
      enum:
        - DISCOUNT
        - RETURN
        - RMA
      title: ReasonTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ReceivementResponseSchema:
      x-stoplight:
        id: 5niv29zo4ck7m
      title: ReceivementResponseSchema
      type: object
      x-tags:
        - Purchase
      required:
        - createdAt
        - createdBy
        - externalId
        - items
        - lastModifiedAt
        - lastModifiedBy
        - packingList
        - purchaseOrderUid
        - receivementUid
        - status
        - warehouseUid
        - expectedArrival
        - expectedDispatch
        - supplierOrderReference
        - receivedAt
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        externalId:
          description: External reference to receivment
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/ReceivementItemResponseSchema'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        packingList:
          type: string
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        receivementUid:
          $ref: '#/components/schemas/UID'
        status:
          $ref: '#/components/schemas/ReceivementStatusENUM'
        warehouseUid:
          $ref: '#/components/schemas/UID'
        expectedArrival:
          type: string
          x-stoplight:
            id: e7d1athl8lg4r
          format: date-time
          description: ETA
        expectedDispatch:
          type: string
          x-stoplight:
            id: 2wwhhmds3x6bc
          format: date-time
          description: ETD
        supplierOrderReference:
          type: string
          x-stoplight:
            id: jykp24hocijvk
        receivedAt:
          type: string
          x-stoplight:
            id: vf79usuaokww0
          format: date-time
          nullable: true
    ReceivementItemResponseSchema:
      title: ReceivementItemResponseSchema
      x-stoplight:
        id: fcg7ykmw3w2nv
      type: object
      x-tags:
        - Purchase
      required:
        - createdAt
        - createdBy
        - externalId
        - lastModifiedAt
        - lastModifiedBy
        - product
        - purchaseOrderItemUid
        - quantity
        - receivementItemUid
        - status
        - note
        - tenantUserUid
        - tenantUserDisplayName
        - reservations
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
          x-stoplight:
            id: mzw7vb63pi7e8
        externalId:
          description: External reference to receivement line
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
          x-stoplight:
            id: k8es3i8sit6rc
        product:
          $ref: '#/components/schemas/ReceivementItemProductResponseSchema'
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        quantity:
          type: integer
        unitPrice:
          type: integer
          x-stoplight:
            id: v5r9xsmvik0o5
          deprecated: true
          description: 'Deprecated: Use unitcost instead'
        unitCost:
          type: integer
          x-stoplight:
            id: vihi1d37c7xm8
        receivementItemUid:
          $ref: '#/components/schemas/UID'
        serialnumber:
          type: string
        status:
          type: string
          x-stoplight:
            id: owxfd5ozb498q
        note:
          type: string
          x-stoplight:
            id: q5w2awxttat8a
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
        tenantUserDisplayName:
          type: string
          x-stoplight:
            id: 2nxwi1wg48w9n
          description: The display name of the user that made the receivement
        reservations:
          type: array
          x-stoplight:
            id: bk58cmmup3ri5
          items:
            $ref: '#/components/schemas/OrderItemReservationSchema'
    ReceivementItemProductResponseSchema:
      title: ReceivementItemProductResponseSchema
      x-stoplight:
        id: eyqxg54f62d8d
      type: object
      x-tags:
        - Purchase
      required:
        - productUid
        - name
        - sku
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 4m5w6jlegi0ms
        sku:
          type: string
          x-stoplight:
            id: imgq47n4b80fp
    ReceivementItemCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ReceivementItemUpdateRequestSchema'
        - properties:
            receivementItemUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: ReceivementItemCreateRequestSchema
    ReceivementItemUpdateRequestSchema:
      title: ReceivementItemUpdateRequestSchema
      description: |-
        If you need to receive more than one quantity for items that required serialnumber you need to add one line for each serialnumber.

        Example: You are going to receive 3 stk of purchaseorderItemUid 33, then you need to add 3 ReceivementItemCreate lines with quantity 1 and the serialnumber for each item.
      x-stoplight:
        id: w3snypxlc2itv
      type: object
      required:
        - purchaseOrderItemUid
        - quantity
      properties:
        externalId:
          description: External reference to receivement line
          type: string
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        quantity:
          type: integer
        serialnumber:
          type: string
        unitCost:
          type: integer
          x-stoplight:
            id: v6mjwleksfbej
          description: The unit cost price in local currency
        note:
          type: string
          x-stoplight:
            id: r0txlnu6y5ba7
        reservations:
          type: array
          x-stoplight:
            id: v5lljf0m5l22y
          items:
            $ref: '#/components/schemas/OrderItemUpdateReservationSchema'
    ReceivementStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECEIVED | Received|
        | PENDING | Put aside, not finished|
        | UPDATING | Updating in progress|
        | CONFIRMED | Confirmed |
      enum:
        - RECEIVED
        - PENDING
        - UPDATING
        - CONFIRMED
      title: ReceivementStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ReportTypeENUM:
      description: |
        Available reports are:

        |ENUM | Description |
        | --- | --- |
        | SAFT | SAFT reports|
        | SalesPrStore | Sales per store|
        | StoreWarehouseDetails | Monthly warehouse details|
        | WarehouseStockDetails | Details list of all stock on the current warehouse|
        | ART_FEE | Art fee report|
        | ART_PROVISION | Artists' provision report|
        | OPEN_ITEMS | List of outstanding receivables |  
        | SOLD_NOT_DELIVERED | Products sold not delivered |
      x-stoplight:
        id: aitcyu7zsdb7u
      enum:
        - SAFT
        - StoreWarehouseDetails
        - SalesPrStore
        - WarehouseStockDetails
        - ART_FEE
        - ART_PROVISION
        - OPEN_ITEMS
        - SOLD_NOT_DELIVERED
      title: ReportTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ReportTurnoverItemSchema:
      description: ''
      x-stoplight:
        id: ehk2qzv4pojdx
      properties:
        costAmount:
          type: integer
        count:
          type: integer
        discountAmount:
          type: integer
        id:
          type: string
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
        text:
          type: string
        turnoverAmount:
          type: integer
      required:
        - id
        - text
        - turnoverAmount
        - revenueAmount
        - revenuePercent
        - discountAmount
        - costAmount
        - count
      title: ReportTurnoverItemSchema
      type: object
    ReportTurnoverProductGroupResponseSchema:
      description: Turnover Report Item For ProductGroups
      x-stoplight:
        id: lf5e2702pdw6g
      properties:
        costAmount:
          type: integer
        count:
          type: integer
        discountAmount:
          type: integer
        hasChildren:
          type: boolean
        productGroupUid:
          $ref: '#/components/schemas/UID'
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
        text:
          type: string
        turnoverAmount:
          type: integer
      required:
        - productGroupUid
        - text
        - turnoverAmount
        - revenueAmount
        - revenuePercent
        - discountAmount
        - costAmount
        - count
        - hasChildren
      title: ReportTurnoverProductGroupResponseSchema
      type: object
    ReportTurnoverTotalSchema:
      description: Turnover Report Total
      x-stoplight:
        id: 3hr0k3kq9d72j
      title: ReportTurnoverTotalSchema
      type: object
      required:
        - costAmount
        - count
        - discountAmount
        - revenueAmount
        - revenuePercent
        - turnoverAmount
        - orderCount
      properties:
        costAmount:
          type: integer
        count:
          type: integer
        discountAmount:
          type: integer
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
          x-stoplight:
            id: 5qofhjj9o89fh
        turnoverAmount:
          type: integer
        orderCount:
          type: integer
          x-stoplight:
            id: c9i0n93pqa4q0
    SerialNoRequiredENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NO | No Serial number required|
        | ON_SALE | Can register serial number when selling a product (Serial number is optional)|
        | ON_RECEIVE | Must register serial number when receiving and selling product (Serial number is required)|
      enum:
        - 'NO'
        - ON_SALE
        - ON_RECEIVE
      title: SerialNoRequiredENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    CustomerExtensionCodeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | TWO_INVOICE | The Two Invoice extension.|
        | KLAVIYO_PROFILE_ID | Klaviyo profile ID |
      enum:
        - TWO_INVOICE
        - KLAVIYO_PROFILE_ID
      title: CustomerExtensionCodeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ExtensionCodeENUM:
      enum:
        - FLOWGIFTCARD
        - PAYEX_GIFTCARD
        - ADYEN_POS
        - PAYEX_POS
        - VIPPS
        - EXTERNAL_CUSTOMER_SEARCH
        - STORE_CREDIT
        - SMS
        - STRIPE
        - NETS
        - VERIFONE
        - SERVICE_WORKSHOP
        - TWO_INVOICE
        - OMNIUM
        - DILLER
        - ARTS
        - CAMPAIGN
        - B2B
        - PEOPLE_COUNTER_KUNDETELLING
        - COMPENSATION
        - SWISH
        - DINTERO
        - KID
        - EHF
        - MYPOWER
        - BRITANNIA
        - SOFTPAY
        - CENTRAL_WAREHOUSE
        - PROFRAKT
        - LOYALTY_POINTS
        - SUBSCRIPTION
        - POWER_DIRECT
        - POSTER
        - PAYMENT_GATEWAY
        - KLAVIYO
        - COMPANY_REGISTRY
        - DIGITAL_PRODUCT
      title: ExtensionCodeENUM
      type: string
      x-internal: false
      x-stoplight:
        id: vfi8w1ixslsjm
      x-tags:
        - ENUM
    ExtensionCapabilityENUM:
      title: ExtensionCapabilityENUM
      type: string
      enum:
        - VALIDATE_CREDENTIALS
        - LIST_PAYMENT_TERMINALS
    SettlementResponseSchema:
      x-stoplight:
        id: errwxuswcqpe5
      title: SettlementResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - amount
        - createdAt
        - displayMessages
        - externalId
        - externalPaymentReference
        - idMethod
        - lastModifiedAt
        - parameters
        - settlementCode
        - settlementUid
        - settlementName
        - state
        - status
        - storeSettlementIssuer
        - tenantUserDisplayName
        - tenantUserUid
        - storePaymentMethodUid
        - currency
        - additionalDetails
        - creditCount
        - creditAmount
        - paymentCount
        - paymentAmount
        - storeUid
        - storeName
        - orderReceiptUid
        - transactions
        - receiptText
      properties:
        amount:
          type: integer
        createdAt:
          format: date-time
          type: string
        displayMessages:
          type: array
          items:
            $ref: '#/components/schemas/SettlementDisplayMessageSchema'
        externalId:
          type: string
        externalPaymentReference:
          type: string
          x-stoplight:
            id: iy90fyllgpcv2
          description: |-
            The external payment reference for this settlement.
            For invoices, this could contain the KID
        idMethod:
          $ref: '#/components/schemas/SettlementIdMethodENUM'
        lastModifiedAt:
          format: date-time
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/SettlementParameterResponseSchema'
        settledAt:
          format: date-time
          type: string
        settlementCode:
          type: string
        settlementUid:
          $ref: '#/components/schemas/UID'
        settlementName:
          type: string
        state:
          $ref: '#/components/schemas/SettlementStateENUM'
        status:
          $ref: '#/components/schemas/SettlementStatusENUM'
        storeSettlementIssuer:
          $ref: '#/components/schemas/storeSettlementIssuerSchema'
        tenantUserDisplayName:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        currency:
          $ref: '#/components/schemas/SettlementCurrencySchema'
        additionalDetails:
          type: array
          items:
            $ref: '#/components/schemas/SettlementAdditionalDetailsSchema'
        creditCount:
          type: integer
          x-stoplight:
            id: 4k30xl7pwon99
          description: Number of credits on this settlement. Only applicable for invoice
        creditAmount:
          type: integer
          description: The total amount credited. Only applicable for invoice
        paymentCount:
          type: integer
          x-stoplight:
            id: 4k30xl7pwon99
          description: Number of payments on this settlement. Only applicable for invoice
        paymentAmount:
          type: integer
          description: The total amount of payments. Only applicable for invoice
        tillUid:
          $ref: '#/components/schemas/OptionalUID'
        tillName:
          type: string
          description: Display name of the till where the payment was registered.
        tillNumber:
          type: integer
          description: Till register number where the payment was registered.
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        storeName:
          type: string
          description: Display name of the store where the payment was registered.
        orderReceiptUid:
          $ref: '#/components/schemas/OptionalUID'
        authorizedAmount:
          type: integer
          description: 'The total authorized amount on this settlement, calculated from authorize transactions.'
        capturedAmount:
          type: integer
          description: 'The total captured amount on this settlement, calculated from capture transactions.'
        refundedAmount:
          type: integer
          description: 'The total refunded amount on this settlement, calculated from refund transactions.'
        receiptText:
          type: string
          maxLength: 500
          description: 'Text printed on the receipt for this payment method when configured on the tenant payment method. Empty when not set, when suppressed for this settlement type (e.g. store credit, gift cards), or when cleared.'
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/SettlementTransactionSchema'
    SettlementTransactionSchema:
      title: SettlementTransactionSchema
      type: object
      required:
        - transactionType
        - transactionAmount
        - orderReceiptUid
      properties:
        transactionType:
          type: string
        pspTransactionId:
          type: string
        transactionAmount:
          type: integer
        orderReceiptUid:
          $ref: '#/components/schemas/OptionalUID'
    SettlementDisplayMessageSchema:
      description: Settlement display messages
      x-stoplight:
        id: wmwglpkz8pdat
      properties:
        key:
          type: string
        message:
          type: string
        timestamp:
          format: date-time
          type: string
      required:
        - key
        - message
        - timestamp
      title: SettlementDisplayMessageSchema
      type: object
      x-tags:
        - Order
    SettlementIdMethodENUM:
      enum:
        - NO_CVM_RULE_PERFORMED
        - SIGNATURE
        - PIN_ONLINE
        - PIN_OFFLINE
        - PIN_ONLINE_AND_SIGNATURE
        - PIN_OFFLINE_AND_SIGNATURE
        - NO_CVM
        - FAILED
        - ON_DEVICE
        - REFUND
      title: SettlementIdMethodENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    SettlementParameterResponseSchema:
      description: settlement parameters response
      title: SettlementParameterResponseSchema
      type: object
      x-tags:
        - Order
      required:
        - key
        - value
        - name
        - type
      properties:
        key:
          type: string
        value:
          type: string
        name:
          type: string
          x-stoplight:
            id: lwqlvhnzg7cqf
        type:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
    SettlementParameterRequestSchema:
      description: settlement parameters request
      title: SettlementParameterRequestSchema
      type: object
      x-tags:
        - Order
      required:
        - key
        - value
      properties:
        key:
          type: string
        value:
          type: string
    SettlementStateENUM:
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
        - TERMINATED
      title: SettlementCodeENUM
      type: string
    SettlementStatusENUM:
      enum:
        - NEW
        - PROCESSING
        - AUTHORIZED
        - CAPTURED
        - REFUNDED
        - PARTIALLY_REFUNDED
        - PENDING_REFUND
        - FAILED
        - CANCELLED_BY_MERCHANT
        - CANCELLED_BY_USER
        - CANCELLED_FORCE
        - DELETED
        - DENIED
        - REJECTED
      title: SettlementCodeENUM
      type: string
    SortDirectionENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | ASC | Sort in ascending order|
        | DESC | Sort in descending order|
      enum:
        - ASC
        - DESC
      title: SortDirectionENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    StockResponseSchema:
      x-stoplight:
        id: b3x3ctdevdu2e
      title: StockResponseSchema
      type: object
      properties:
        averageCost:
          type: integer
        locationLabel:
          type: string
        maxStockLevel:
          type: integer
        minStockLevel:
          type: integer
        price:
          type: integer
        productUid:
          $ref: '#/components/schemas/UID'
        productName:
          type: string
        productSku:
          type: string
        quantityReserved:
          type: integer
        quantityStock:
          type: integer
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
          x-stoplight:
            id: dro52y71q0obr
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
          x-stoplight:
            id: wjaiiywfhsx2y
      required:
        - averageCost
        - locationLabel
        - maxStockLevel
        - minStockLevel
        - price
        - productUid
        - productName
        - productSku
        - quantityReserved
        - quantityStock
        - warehouseUid
        - warehouseName
        - storeUid
        - storeName
    StockLogResponseSchema:
      description: 'Log data for a product''s stock movements. Sorted by timestamp, descending'
      title: StockLogResponseSchema
      type: object
      required:
        - costDelta
        - costNew
        - costOrigin
        - costTransaction
        - createdAt
        - quantityDelta
        - quantityNew
        - quantityNotAvailable
        - quantityOrigin
        - reference
        - serialnumber
        - tenantUserUid
        - tenantUserName
        - transactionType
        - saleCostPrice
        - referenceDetails
      properties:
        costDelta:
          type: integer
          description: Average cost price delta
        costNew:
          type: integer
          description: Average cost price after the transaction
        costOrigin:
          type: integer
          description: Average cost price before the transaction
        costTransaction:
          type: integer
          x-stoplight:
            id: yi2r41lu4rogf
          description: The cost of the current transaction
        createdAt:
          format: date-time
          type: string
        quantityDelta:
          type: integer
        quantityNew:
          type: integer
        quantityNotAvailable:
          type: integer
        quantityOrigin:
          type: integer
        reference:
          type: integer
        referenceDetails:
          $ref: '#/components/schemas/StockLogReferenceSchema'
        serialnumber:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        tenantUserName:
          type: string
        transactionType:
          $ref: '#/components/schemas/TransactionTypeENUM'
        saleCostPrice:
          type: integer
          x-stoplight:
            id: wrq46hy8afue0
    StockLogSearchRequestSchema:
      properties:
        fromDateTime:
          format: date-time
          type: string
        serialnumber:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        toDateTime:
          format: date-time
          type: string
      title: StockLogSearchRequestSchema
      type: object
      x-stoplight:
        id: l8m6hxqea1fu2
    StocktakingControlTotalsResponseSchema:
      title: StocktakingControlTotalsResponseSchema
      x-stoplight:
        id: a938de8646ed7
      type: object
      required:
        - productsWithPositiveDiffCount
        - positiveDiffAmount
        - productsWithNegativeDiffCount
        - negativeDiffAmount
        - stockValueAtStart
        - stockValueRegistered
      properties:
        productsWithPositiveDiffCount:
          type: integer
          x-stoplight:
            id: mlrh9sfi3cyzr
        positiveDiffAmount:
          type: integer
          x-stoplight:
            id: 0a2drnrk4l4kg
        productsWithNegativeDiffCount:
          type: integer
          x-stoplight:
            id: 8ma9mzyzpavp6
        negativeDiffAmount:
          type: integer
          x-stoplight:
            id: 937mcv5sagllu
        stockValueAtStart:
          type: integer
          x-stoplight:
            id: qpfkoeru0oje0
        stockValueRegistered:
          type: integer
          x-stoplight:
            id: xgi4q9y9zf49z
    StocktakingControlItemResponseSchema:
      title: StocktakingControlItemResponseSchema
      type: object
      required:
        - costPrice
        - brandName
        - createdAt
        - createdBy
        - name
        - note
        - productGroupName
        - productUid
        - quantityDiff
        - quantityRegistered
        - quantityStock
        - sku
        - stocktakingItemUid
      properties:
        costPrice:
          type: integer
          x-stoplight:
            id: k398ioww0qn0c
        brandName:
          type: string
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        name:
          type: string
        note:
          type: string
          x-stoplight:
            id: kvx582r89muc8
        productGroupName:
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
        quantityDiff:
          description: differenece between quantityStock and quantityRegistered
          type: integer
        quantityRegistered:
          description: Registered quantity
          type: integer
        quantityStock:
          description: Quantity in stock before registering
          type: integer
        sku:
          type: string
        stocktakingItemUid:
          $ref: '#/components/schemas/UID'
    StocktakingControlResponseSchema:
      description: StocktakingControlResponseSchema
      title: StocktakingControlResponseSchema
      type: object
      required:
        - createdAt
        - createdBy
        - description
        - totals
        - items
        - lastModifiedAt
        - lastModifiedBy
        - status
        - stocktakingUid
        - warehouseUid
        - withStock
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        description:
          type: string
        totals:
          $ref: '#/components/schemas/StocktakingControlTotalsResponseSchema'
        items:
          type: array
          items:
            $ref: '#/components/schemas/StocktakingControlItemResponseSchema'
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        paging:
          $ref: '#/components/schemas/Paging'
        status:
          $ref: '#/components/schemas/StocktakingStatusENUM'
        stocktakingUid:
          $ref: '#/components/schemas/UID'
        warehouseUid:
          $ref: '#/components/schemas/UID'
        withStock:
          type: boolean
    StocktakingCreateRequestSchema:
      description: Stock Counting request schema
      title: StocktakingCreateRequestSchema
      type: object
      properties:
        description:
          type: string
        type:
          $ref: '#/components/schemas/StocktakingTypeENUM'
        withStock:
          default: false
          type: boolean
        stocktakingUid:
          $ref: '#/components/schemas/UID'
      required:
        - description
        - type
        - withStock
    StocktakingItemSchema:
      description: Items in a stocktaking
      title: StocktakingItemSchema
      type: object
      x-examples: {}
      required:
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - note
        - product
        - serialnumbers
        - stocktakingItemUid
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        note:
          type: string
          x-stoplight:
            id: 8k0k6zb6mokei
        product:
          $ref: '#/components/schemas/StocktakingItemProductSchema'
        serialnumbers:
          type: array
          items:
            type: string
        stocktakingItemUid:
          $ref: '#/components/schemas/UID'
    StocktakingItemProductSchema:
      description: Items in a stocktaking
      x-stoplight:
        id: xfus47hgp2w63
      title: StocktakingItemProductSchema
      type: object
      x-examples: {}
      required:
        - brandName
        - gtins
        - name
        - productGroupName
        - productUid
        - serialNoRequired
        - sku
      properties:
        brandName:
          type: string
        gtins:
          type: array
          items:
            type: string
        name:
          type: string
        productGroupName:
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        sku:
          type: string
    StocktakingItemUpdateSchema:
      description: Update a stocktaking item
      x-stoplight:
        id: 1bsqmvhkky7sk
      title: StocktakingItemUpdateSchema
      type: object
      required:
        - note
      properties:
        note:
          type: string
    StocktakingRegistrationItemRequestSchema:
      description: Schema for a stocktaking registration
      title: StocktakingRegistrationItemRequestSchema
      type: object
      required:
        - productUid
        - quantity
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        quantity:
          type: integer
        serialnumber:
          type: string
        note:
          type: string
          x-stoplight:
            id: h63uhj6uvf0p3
    StocktakingRegistrationRequestSchema:
      description: Schema for a list of stocktaking registrations
      properties:
        items:
          items:
            $ref: '#/components/schemas/StocktakingRegistrationItemRequestSchema'
          type: array
      required:
        - items
      title: StocktakingRegistrationRequestSchema
      type: object
    StocktakingRegistrationResponseSchema:
      description: Schema for a stocktaking registration
      title: StocktakingRegistrationResponseSchema
      type: object
      required:
        - stocktakingRegistrationUid
        - createdAt
        - createdBy
        - quantity
        - serialnumber
        - note
      properties:
        stocktakingRegistrationUid:
          $ref: '#/components/schemas/UID'
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        quantity:
          type: integer
        serialnumber:
          type: string
        note:
          type: string
          x-stoplight:
            id: a87n5b8gpqupg
    StocktakingResponseSchema:
      description: Stock Counting response schema
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        description:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        status:
          $ref: '#/components/schemas/StocktakingStatusENUM'
        stocktakingUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/StocktakingTypeENUM'
        warehouseUid:
          $ref: '#/components/schemas/UID'
        withStock:
          type: boolean
      required:
        - stocktakingUid
        - warehouseUid
        - description
        - withStock
        - type
        - status
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      title: StocktakingResponseSchema
      type: object
    StocktakingStatusENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Stock counting not started|
        | IN_PROGRESS | Stock counting is in progress. Registraions can be made.|
        | COMPLETE | Stock counting is complete|
        | DELETED | Stock counting is deleted, stock not adjusted|
        | CONTROL | Stock counting is in control mode, no further registrations can be made|
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
        - DELETED
        - CONTROL
      title: StocktakingStatusENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    StocktakingTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | FULL | Stock counting containing all productUids in tenant|
        | PARTIAL | Stock counting containing a list of specific producdIds|
        | RECOUNT | Make a new stock taking with a set of productUids to be recounted|
      enum:
        - FULL
        - PARTIAL
        - RECOUNT
      title: StocktakingTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    StocktakingUpdateRequestSchema:
      properties:
        description:
          type: string
        status:
          $ref: '#/components/schemas/StocktakingStatusENUM'
      required:
        - description
        - status
      title: StocktakingUpdateRequestSchema
      type: object
    StoreResponseSchema:
      title: StoreResponseSchema
      x-stoplight:
        id: kzbluwm6zqbwi
      type: object
      required:
        - address
        - city
        - countryCode
        - createdAt
        - defaultWarehouseUid
        - defaultReturnWarehouseUid
        - defaultDeliveryWarehouseUid
        - email
        - externalId
        - isActive
        - lastModifiedAt
        - latitude
        - longitude
        - name
        - postalCode
        - phone
        - purchaseNumberSeriesUid
        - internalPurchaseNumberSeriesUid
        - rmaOrderNumberSeriesUid
        - customerLedgerNumberSeriesUid
        - quicksaleCategoryUid
        - receiptMessage
        - emailReceiptMessage
        - exchangenoteMessage
        - exchangenoteValidDays
        - salesPriceUid
        - purchasePriceListUid
        - appSettings
        - storeUid
        - vatNumber
        - voucherNumberSeriesUid
        - serviceNumberSeriesUid
        - hasWorkShop
        - organizationUid
        - availableExtensions
        - openingHours
        - bankInfo
        - websiteUrl
        - invoiceFooterText
        - labelComparisonPricelistUid
        - addresses
        - enableStoreCashReconciliation
        - cashReconciliationCutOffTime
        - logoAssetUid
      properties:
        address:
          type: string
        city:
          type: string
        countryCode:
          type: string
        createdAt:
          format: date-time
          type: string
        defaultWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        defaultReturnWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        defaultDeliveryWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        isActive:
          type: boolean
        lastModifiedAt:
          format: date-time
          type: string
        latitude:
          type: number
        longitude:
          type: number
        name:
          type: string
        postalCode:
          type: string
        phone:
          type: string
        purchaseNumberSeriesUid:
          $ref: '#/components/schemas/UID'
        internalPurchaseNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        rmaOrderNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        customerLedgerNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        quicksaleCategoryUid:
          $ref: '#/components/schemas/OptionalUID'
        receiptMessage:
          type: string
        emailReceiptMessage:
          type: string
        exchangenoteMessage:
          type: string
        exchangenoteValidDays:
          type: integer
          description: Number of days an exchangenote is valid.
        salesPriceUid:
          $ref: '#/components/schemas/OptionalUID'
        purchasePriceListUid:
          $ref: '#/components/schemas/OptionalUID'
        settings:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/StoreSettingSchema'
        appSettings:
          $ref: '#/components/schemas/StoreAppSettingResponseSchema'
        storeUid:
          $ref: '#/components/schemas/UID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        voucherNumberSeriesUid:
          $ref: '#/components/schemas/UID'
        serviceNumberSeriesUid:
          $ref: '#/components/schemas/UID'
        hasWorkShop:
          type: boolean
        organizationUid:
          $ref: '#/components/schemas/UID'
        availableExtensions:
          type: array
          x-stoplight:
            id: aeinnaudgivjz
          items:
            $ref: '#/components/schemas/AvailableExtensionSchema'
        openingHours:
          $ref: '#/components/schemas/OpeningHoursResponseSchema'
        bankInfo:
          $ref: '#/components/schemas/BankInfoResponseSchema'
        websiteUrl:
          type: string
          x-stoplight:
            id: 8rb64ouufor9l
        invoiceFooterText:
          type: string
          x-stoplight:
            id: 1hogt2rmu2inu
        labelComparisonPricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/StoreAddressResponseSchema'
        enableStoreCashReconciliation:
          type: boolean
          x-stoplight:
            id: mg78v4we0d3ye
        cashReconciliationCutOffTime:
          type: string
          x-stoplight:
            id: 8wewmz7loqi7p
          format: time
          description: 'Daily cut-off time (e.g. 4 AM). After this time, tills cannot open until the previous settlement is complete.'
        logoAssetUid:
          $ref: '#/components/schemas/OptionalUID'
    DeviceStoreResponseSchema:
      title: DeviceStoreResponseSchema
      x-stoplight:
        id: krvatpupl4rml
      type: object
      nullable: true
      required:
        - name
        - storeUid
        - organizationUid
      properties:
        name:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        organizationUid:
          $ref: '#/components/schemas/UID'
    BasicStoreResponseSchema:
      title: BasicStoreResponseSchema
      x-stoplight:
        id: hj3aouf3012qu
      type: object
      required:
        - name
        - storeUid
        - organizationUid
        - organizationName
      properties:
        name:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        organizationUid:
          $ref: '#/components/schemas/UID'
        organizationName:
          type: string
          x-stoplight:
            id: mbmylcugqbpws
    BasicOrganizationResponseSchema:
      title: BasicOrganizationResponseSchema
      x-stoplight:
        id: 287um5bxoucg9
      type: object
      required:
        - name
        - organizationUid
      properties:
        name:
          type: string
        organizationUid:
          $ref: '#/components/schemas/UID'
    BasicTenantRoleResponseSchema:
      title: BasicTenantRoleResponseSchema
      x-stoplight:
        id: 8d0f4speubfum
      type: object
      required:
        - name
        - tenantRoleUid
        - isSystemRole
      properties:
        name:
          type: string
        tenantRoleUid:
          $ref: '#/components/schemas/UID'
        isSystemRole:
          type: boolean
          x-stoplight:
            id: olnkkx8cl83zm
    CustomerStoreResponseSchema:
      title: CustomerStoreResponseSchema
      x-stoplight:
        id: ag2lzpibpari4
      type: object
      nullable: true
      required:
        - name
        - storeUid
      properties:
        name:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
    OrderIntakeStoreResponseSchema:
      title: OrderIntakeStoreResponseSchema
      x-stoplight:
        id: 9etoukjhy3jnq
      type: object
      required:
        - name
        - storeUid
      properties:
        name:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
    OrganizationResponseSchema:
      title: OrganizationResponseSchema
      x-stoplight:
        id: d1sj1xavogh36
      type: object
      required:
        - address
        - city
        - countryCode
        - createdAt
        - email
        - externalId
        - isActive
        - lastModifiedAt
        - name
        - postalCode
        - phone
        - organizationUid
        - vatNumber
        - bankInfo
        - websiteUrl
      properties:
        address:
          type: string
        city:
          type: string
        countryCode:
          type: string
        createdAt:
          format: date-time
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        isActive:
          type: boolean
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        postalCode:
          type: string
        phone:
          type: string
        organizationUid:
          $ref: '#/components/schemas/UID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        bankInfo:
          $ref: '#/components/schemas/BankInfoResponseSchema'
        websiteUrl:
          type: string
          x-stoplight:
            id: 97b8qazujrchs
    StoreCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/StoreUpdateRequestSchema'
        - properties:
            storeUid:
              $ref: '#/components/schemas/UID'
            organizationUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: w086yuznd3qej
            voucherNumberSeriesUid:
              $ref: '#/components/schemas/UID'
            purchaseNumberSeriesUid:
              $ref: '#/components/schemas/UID'
            internalPurchaseNumberSeriesUid:
              $ref: '#/components/schemas/UID'
            rmaOrderNumberSeriesUid:
              $ref: '#/components/schemas/UID'
            customerLedgerNumberSeriesUid:
              $ref: '#/components/schemas/UID'
          required:
            - organizationUid
            - name
            - voucherNumberSeriesUid
            - purchaseNumberSeriesUid
      title: StoreCreateRequestSchema
      type: object
    StoreUpdateRequestSchema:
      title: StoreUpdateRequestSchema
      x-stoplight:
        id: 4uufafv5cxxhq
      type: object
      properties:
        address:
          type: string
        city:
          type: string
        countryCode:
          type: string
        defaultReturnWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        defaultWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        defaultDeliveryWarehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        isActive:
          type: boolean
        latitude:
          type: number
        longitude:
          type: number
        name:
          type: string
        phone:
          type: string
        postalCode:
          type: string
        purchaseNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        internalPurchaseNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        rmaOrderNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        customerLedgerNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        quicksaleCategoryUid:
          $ref: '#/components/schemas/OptionalUID'
        receiptMessage:
          type: string
        emailReceiptMessage:
          type: string
        exchangenoteMessage:
          type: string
        exchangenoteValidDays:
          type: integer
          description: Number of days an exchangenote is valid.
        salesPriceUid:
          $ref: '#/components/schemas/OptionalUID'
        purchasePriceListUid:
          $ref: '#/components/schemas/OptionalUID'
        appSettings:
          $ref: '#/components/schemas/StoreAppSettingRequestSchema'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        voucherNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        hasWorkshop:
          type: boolean
        organizationUid:
          $ref: '#/components/schemas/OptionalUID'
        serviceNumberSeriesUid:
          $ref: '#/components/schemas/OptionalUID'
        openingHours:
          $ref: '#/components/schemas/OpeningHoursRequestSchema'
        bankInfo:
          $ref: '#/components/schemas/BankInfoRequestSchema'
        websiteUrl:
          type: string
          x-stoplight:
            id: 7rrz21lqxkpvf
        invoiceFooterText:
          type: string
          x-stoplight:
            id: r6d7x6j6ploq2
        labelComparisonPricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        enableStoreCashReconciliation:
          type: boolean
          x-stoplight:
            id: m7yt6erysyi46
        cashReconciliationCutOffTime:
          type: string
          x-stoplight:
            id: x7pjf9jsded1a
          format: time
          description: 'Daily cut-off time (e.g. 4 AM). After this time, tills cannot open until the previous settlement is complete.'
        logoAssetUid:
          $ref: '#/components/schemas/OptionalUID'
    OrganizationCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/OrganizationUpdateRequestSchema'
        - properties:
            organizationUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: OrganizationCreateRequestSchema
    OrganizationUpdateRequestSchema:
      title: OrganizationUpdateRequestSchema
      x-stoplight:
        id: et29m1742hqfn
      type: object
      required:
        - name
      properties:
        address:
          type: string
        city:
          type: string
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        isActive:
          type: boolean
        name:
          type: string
        phone:
          type: string
        postalCode:
          type: string
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        websiteUrl:
          type: string
          x-stoplight:
            id: psg3qo5h2f9lw
        bankInfo:
          $ref: '#/components/schemas/BankInfoRequestSchema'
    StorePaymentMethodCreateRequestSchema:
      title: StorePaymentMethodCreateRequestSchema
      type: object
      x-stoplight:
        id: mso30n5gl44z3
      properties:
        active:
          type: boolean
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
        tenantPaymentMethodUid:
          $ref: '#/components/schemas/UID'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
      required:
        - tenantPaymentMethodUid
    StorePaymentMethodResponseSchema:
      description: ''
      properties:
        active:
          type: boolean
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
        storePaymentMethodUid:
          $ref: '#/components/schemas/UID'
        storeSettlementIssuers:
          description: Bool indication there are storeSettlementIssuer records on this storePaymentMethod
          type: boolean
        tenantPaymentMethod:
          $ref: '#/components/schemas/TenantPaymentMethodResponseSchema'
      required:
        - storePaymentMethodUid
        - ledgerType
        - ledgerNumber
        - storeSettlementIssuers
        - active
        - tenantPaymentMethod
      title: StorePaymentMethodResponseSchema
      type: object
      x-tags:
        - PaymentMethods
    StorePaymentMethodUpdateRequestSchema:
      title: StorePaymentMethodUpdateRequestSchema
      properties:
        active:
          type: boolean
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
      type: object
    StoreProductResponseSchema:
      allOf:
        - type: object
          properties:
            storeProductDetails:
              $ref: '#/components/schemas/StoreProductDetailsSchema'
          required:
            - costPrice
            - grossProfitAmount
            - grossProfitPercentage
            - price
            - quantityReserved
            - quantityStock
            - storeProductDetails
        - $ref: '#/components/schemas/ProductResponseSchema'
      x-stoplight:
        id: 8ige6f2ljhipv
      description: StoreProductResponseSchema
    StoreProductDetailsSchema:
      description: StoreProductDetailsSchema
      type: object
      x-stoplight:
        id: wf90d3ujlqfb9
      title: StoreProductDetailsSchema
      required:
        - grossProfitAmount
        - grossProfitPercentage
        - costPrice
        - price
        - campaignPrice
        - campaignName
        - quantityReserved
        - quantityStock
        - quantityOrdered
        - warehouseStockDetails
        - soaAmounts
      properties:
        grossProfitAmount:
          type: integer
        grossProfitPercentage:
          type: integer
        costPrice:
          type: integer
        price:
          type: integer
        campaignPrice:
          type: integer
          x-stoplight:
            id: h7szxvxvnqoob
          description: Lowest price found in an active campaign
        campaignName:
          type: string
          x-stoplight:
            id: ywbrp2j916t4l
          description: Name of campaign for campaignPrice
        quantityReserved:
          type: integer
          description: Total reserved quantity on salesorders
        quantityStock:
          type: integer
          description: Total quantity in stock
        quantityOrdered:
          type: integer
          description: Total Quantity in purchase orders that is not received yet.
          x-stoplight:
            id: 6sjonni89trfa
        warehouseStockDetails:
          type: array
          x-stoplight:
            id: iwakx3c4p0df2
          items:
            $ref: '#/components/schemas/StoreProductWarehouseStockDetailsSchema'
        soaAmounts:
          type: array
          x-stoplight:
            id: gnupiu8es9y87
          items:
            $ref: '#/components/schemas/StoreProductSOADetailsSchema'
    StoreProductSearchSchema:
      title: StoreProductSearchSchema
      type: object
      x-tags:
        - Product
      properties:
        brandUids:
          x-stoplight:
            id: o6y5zwfdk4beg
          type: array
          items:
            $ref: '#/components/schemas/UID'
        exactMatch:
          type: boolean
        query:
          type: string
        productGroupUids:
          type: array
          description: A list of product group UIDs that you want to include in the search
          items:
            $ref: '#/components/schemas/UID'
        productGroupScopes:
          type: array
          items:
            $ref: '#/components/schemas/ProductGroupScopeENUM'
        supplierUid:
          $ref: '#/components/schemas/UID'
        productUids:
          type: array
          description: A list of product UIDs to search for
          items:
            $ref: '#/components/schemas/UID'
        hideVariants:
          type: boolean
          x-stoplight:
            id: 51m358tksdbnv
        includeDiscontinued:
          type: boolean
          x-stoplight:
            id: 0vlyxhqzz8fzn
        visibility:
          type: array
          x-stoplight:
            id: cvqeyqv3gms39
          description: Filter on product visibility
          items:
            $ref: '#/components/schemas/ProductVisibilityENUM'
        productTypes:
          type: array
          x-stoplight:
            id: 7ae88xjrzmwdh
          items:
            $ref: '#/components/schemas/ProductTypeENUM'
        warehouseUids:
          type: array
          description: Only included specific warehouses in the result
          x-stoplight:
            id: x0vhd63xqlwyk
          items:
            $ref: '#/components/schemas/UID'
        onlyInStock:
          type: boolean
          x-stoplight:
            id: 6cv8wppnxsxcb
          description: 'If true, returns only products with stocklevel > 0'
        hideNotAllowPurchase:
          type: boolean
          x-stoplight:
            id: 8evhfs49j1egr
          description: 'when true, only show products with `allowPurchase` = true'
        hasSoaAmounts:
          type: boolean
          x-stoplight:
            id: n6etpr1ilmqh2
          description: optionally filter on products that have or do not have SOA amounts
    StoreReportTurnoverItemSchema:
      description: ''
      properties:
        costAmount:
          type: integer
        count:
          type: integer
        discountAmount:
          type: integer
        name:
          type: string
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
        storeUid:
          $ref: '#/components/schemas/UID'
        turnoverAmount:
          type: integer
      required:
        - storeUid
        - name
        - turnoverAmount
        - revenueAmount
        - revenuePercent
        - discountAmount
        - costAmount
        - count
      title: StoreTurnoverReportItem
      type: object
    StoreReportTurnoverDateSchema:
      title: StoreReportTurnoverDateSchema
      type: object
      required:
        - costAmount
        - count
        - date
        - discountAmount
        - revenueAmount
        - revenuePercent
        - turnoverAmount
      properties:
        costAmount:
          type: integer
        count:
          type: integer
        date:
          type: string
        discountAmount:
          type: integer
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
        turnoverAmount:
          type: integer
    TenantUserReportTurnoverSchema:
      x-stoplight:
        id: 1st5rdgc127s7
      title: TenantUserReportTurnoverSchema
      type: object
      properties:
        position:
          type: integer
          x-stoplight:
            id: svdugpfhe7icm
        costAmount:
          type: integer
        orderCount:
          type: integer
          x-stoplight:
            id: 92zav1hg3tcy9
        discountAmount:
          type: integer
        revenueAmount:
          type: integer
        revenuePercent:
          type: integer
        turnoverAmount:
          type: integer
        vatAmount:
          type: integer
          x-stoplight:
            id: u8s31upd4cohk
        firstName:
          type: string
          x-stoplight:
            id: tlvtri6spzklk
        lastName:
          type: string
          x-stoplight:
            id: ttp8qt983cj4r
        displayName:
          type: string
          x-stoplight:
            id: t5afnpl5kw699
        tenantUserUid:
          type: string
          x-stoplight:
            id: eb7zs9hlgnu78
      required:
        - position
        - costAmount
        - orderCount
        - discountAmount
        - revenueAmount
        - revenuePercent
        - turnoverAmount
        - vatAmount
        - firstName
        - lastName
        - displayName
        - tenantUserUid
    StoreRoleENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | ADMIN | Store admin.|
        | BACKOFFICE | Access to all backoffice functionality (price changes, purhcase order, etc)|
        | REGULAR | Access to app funtionality (product lookup, create sales, delivery)|
      enum:
        - ADMIN
        - BACKOFFICE
        - REGULAR
      title: StoreRoleENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    StoreExtensionCreateRequestSchema:
      title: StoreExtensionCreateRequestSchema
      x-stoplight:
        id: dfnsria5xazru
      type: object
      properties:
        active:
          type: boolean
          description: Activate/Deactivate the extension on the store
        storeParameters:
          type: array
          description: |-
            A list of store parameters. 
            The valid keys can be found in storeParameterKeys on the tenantExtension.
            If there are no storeParameterKeys you need to supply an empty list.
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
        tenantExtensionUid:
          $ref: '#/components/schemas/UID'
        storeExtensionUid:
          $ref: '#/components/schemas/UID'
      required:
        - active
        - storeParameters
        - tenantExtensionUid
    GeneralParameterRequestSchema:
      description: GeneralParameterRequestSchema
      title: GeneralParameterRequestSchema
      type: object
      x-stoplight:
        id: jxjh26y0slam8
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
    StoreExtensionUpdateRequestSchema:
      x-stoplight:
        id: 6abxeffhjanph
      title: StoreExtensionUpdateRequestSchema
      type: object
      properties:
        active:
          type: boolean
          description: Activate/Deactivate the extension on the store
        storeParameters:
          type: array
          description: |-
            A list of store parameters. 
            The valid keys can be found in storeParameterKeys on the tenantExtension.
            If there are no storeParameterKeys you need to supply an empty list.
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
      required:
        - active
        - storeParameters
    StoreExtensionTenantExtensionResponseSchema:
      description: StoreExtensionTenantExtensionResponseSchema
      type: object
      title: StoreExtensionTenantExtensionResponseSchema
      properties:
        extensionCode:
          $ref: '#/components/schemas/ExtensionCodeENUM'
        active:
          type: boolean
          x-stoplight:
            id: bdm12tv4dq0jt
        tenantExtensionUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: nbpuflcqv1umu
      required:
        - extensionCode
        - active
        - tenantExtensionUid
        - name
    StoreExtensionStoreResponseSchema:
      description: StoreExtensionStoreResponseSchema
      x-stoplight:
        id: runaccqhf4gw6
      type: object
      title: StoreExtensionStoreResponseSchema
      properties:
        storeExtensionUid:
          $ref: '#/components/schemas/UID'
        active:
          type: boolean
          x-stoplight:
            id: jup8exiwxf5ux
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
          x-stoplight:
            id: d0l5yg21n9frg
      required:
        - storeExtensionUid
        - active
        - storeUid
        - storeName
    StoreExtensionResponseSchema:
      description: StoreExtensionResponseSchema
      x-stoplight:
        id: 2lw4b5doj0vqw
      title: StoreExtensionResponseSchema
      type: object
      required:
        - storeExtensionUid
        - active
        - storeParameters
        - tenantExtension
        - statusMessages
        - capabilities
      properties:
        storeExtensionUid:
          $ref: '#/components/schemas/UID'
        active:
          type: boolean
        storeParameters:
          type: array
          items:
            $ref: '#/components/schemas/GeneralParameterResponseSchema'
        tenantExtension:
          $ref: '#/components/schemas/StoreExtensionTenantExtensionResponseSchema'
        statusMessages:
          type: array
          x-stoplight:
            id: 5i7a60zciwng7
          items:
            x-stoplight:
              id: 5d0zvm3ghughl
            type: string
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/ExtensionCapabilityENUM'
    StoreSettingSchema:
      description: ''
      x-stoplight:
        id: mwgoaze6l9aos
      properties:
        key:
          $ref: '#/components/schemas/StoreSettingKeyENUM'
        value:
          type: string
      required:
        - key
        - value
      title: StoreSettingSchema
      type: object
    StoreAppSettingRequestSchema:
      x-stoplight:
        id: eqy2n4s927xek
      title: StoreAppSettingRequestSchema
      type: object
      properties:
        hidePurchase:
          type: boolean
          x-stoplight:
            id: 282vlx5q00ks1
        hideReceivement:
          type: boolean
          x-stoplight:
            id: duuau2l6et4xg
        enableUnlinkedPayments:
          type: boolean
          x-stoplight:
            id: lpszt95ddnxb2
    StoreAppSettingResponseSchema:
      title: StoreAppSettingResponseSchema
      x-stoplight:
        id: 6gl0u7qv1mu3o
      type: object
      required:
        - hidePurchase
        - hideReceivement
        - enableUnlinkedPayments
      properties:
        hidePurchase:
          type: boolean
        hideReceivement:
          type: boolean
        enableUnlinkedPayments:
          type: boolean
          x-stoplight:
            id: zt2zmssih43qj
    StoreSettingKeyENUM:
      enum:
        - VIPPS_MSN
        - ADYEN_API_KEY
      title: StoreSettingKey
      type: string
    StoreSettlementIssuerResponseSchema:
      description: ''
      properties:
        code:
          type: string
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
        name:
          type: string
        storeSettlementIssuerUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeSettlementIssuerUid
        - ledgerType
        - ledgerNumber
        - name
        - code
      title: StoreSettlementIssuerResponseSchema
      type: object
      x-tags:
        - PaymentMethods
    StoreSettlementIssuerUpdateRequestSchema:
      title: StoreSettlementIssuerUpdateRequestSchema
      properties:
        ledgerNumber:
          description: Ledger number must be a valid number with possible leading zeros
          type: string
        ledgerType:
          $ref: '#/components/schemas/LedgerTypeENUM'
      type: object
    SupplierResponseSchema:
      x-stoplight:
        id: o1q1eevpxfasw
      title: SupplierResponseSchema
      type: object
      required:
        - address
        - city
        - contactEmail
        - contactName
        - countryCode
        - createdAt
        - email
        - externalId
        - lastModifiedAt
        - name
        - phone
        - postalCode
        - supplierUid
        - vatNumber
        - active
        - bankInfo
        - fixedDiscountRate
        - currency
        - freightPercentage
      properties:
        address:
          type: string
        city:
          type: string
        contactEmail:
          $ref: '#/components/schemas/EmailTYPE'
        contactName:
          type: string
        countryCode:
          type: string
        createdAt:
          format: date-time
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        phone:
          type: string
        postalCode:
          type: string
        supplierUid:
          $ref: '#/components/schemas/UID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        active:
          type: boolean
          x-stoplight:
            id: 6er2bl1f165zy
        bankInfo:
          $ref: '#/components/schemas/BankInfoResponseSchema'
        fixedDiscountRate:
          type: integer
          x-stoplight:
            id: 1s8b5vhxcj9bv
        currency:
          type: string
          x-stoplight:
            id: 4lyidrxf9j1k9
          description: ISO 4217 code
        freightPercentage:
          type: integer
          x-stoplight:
            id: ff57unf3cl3cu
    SupplierCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/SupplierUpdateRequestSchema'
        - required:
            - name
          properties:
            supplierUid:
              $ref: '#/components/schemas/UID'
            countryCode:
              type: string
              x-stoplight:
                id: ptis6v8tqu9ra
            name:
              type: string
              x-stoplight:
                id: tofr664m2psil
      title: SupplierCreateRequestSchema
      type: object
    SupplierUpdateRequestSchema:
      title: SupplierUpdateRequestSchema
      x-stoplight:
        id: vb89hv0tf4j6w
      type: object
      properties:
        address:
          type: string
        city:
          type: string
        contactEmail:
          $ref: '#/components/schemas/EmailTYPE'
        contactName:
          type: string
        countryCode:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        name:
          type: string
        phone:
          type: string
        postalCode:
          type: string
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        active:
          type: boolean
          x-stoplight:
            id: pfyq9v5rxclrt
        bankInfo:
          $ref: '#/components/schemas/BankInfoRequestSchema'
        fixedDiscountRate:
          type: integer
          x-stoplight:
            id: ofyrrso84yy9s
        currency:
          type: string
          x-stoplight:
            id: rrymo5ptzievt
          description: ISO 4217 code
        freightPercentage:
          type: integer
          x-stoplight:
            id: vmgk9tms2c7xj
    SupplierProductResponseSchema:
      x-stoplight:
        id: ipijaxe8tun0w
      title: SupplierProductResponseSchema
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        productUid:
          $ref: '#/components/schemas/UID'
        supplierUid:
          $ref: '#/components/schemas/UID'
        purchasePrice:
          type: integer
        supplierProductUid:
          $ref: '#/components/schemas/UID'
        supplierSku:
          type: string
      required:
        - createdAt
        - lastModifiedAt
        - productUid
        - supplierUid
        - purchasePrice
        - supplierProductUid
        - supplierSku
    SupplierProductCreateRequestSchema:
      properties:
        supplierProductUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
        purchasePrice:
          type: integer
        supplierSku:
          type: string
      required:
        - productUid
        - purchasePrice
      type: object
      title: SupplierProductCreateRequestSchema
    SupplierProductUpdateRequestSchema:
      title: SupplierProductUpdateRequestSchema
      x-stoplight:
        id: kmgd0bebv2lcz
      type: object
      properties:
        purchasePrice:
          type: integer
        supplierSku:
          type: string
    TenantResponseSchema:
      title: TenantResponseSchema
      x-stoplight:
        id: v496e432336ya
      type: object
      required:
        - countryCode
        - createdAt
        - lastModifiedAt
        - name
        - pricelistUid
        - tenantUid
        - vatNumber
        - settings
        - appSettings
        - extensions
        - assets
        - timezone
        - languageCode
        - currency
      properties:
        countryCode:
          type: string
        createdAt:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        tenantUid:
          $ref: '#/components/schemas/UID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        settings:
          $ref: '#/components/schemas/TenantSettingsResponseSchema'
        appSettings:
          $ref: '#/components/schemas/TenantAppSettingsResponseSchema'
        extensions:
          type: array
          x-stoplight:
            id: p1kbx4knvba9j
          items:
            $ref: '#/components/schemas/TenantExtensionSchema'
        assets:
          $ref: '#/components/schemas/TenantAssetSchema'
        timezone:
          $ref: '#/components/schemas/TimezoneTYPE'
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        currency:
          $ref: '#/components/schemas/TenantCurrencySchema'
    TenantAccountAcceptInviteSchema:
      description: Accept an invitation
      title: TenantAccountAcceptInviteSchema
      type: object
      properties:
        inviteToken:
          type: string
      required:
        - inviteToken
    TenantAccountTypeENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | FULL | Access to backoffice and onboarding of new devices|
        | REGULAR | Can only login to already onboarded devices|
        | SUPPORT | Support account|
        | INTEGRATION | Computer integration account|
      enum:
        - FULL
        - REGULAR
        - SUPPORT
        - INTEGRATION
      title: TenantAccountTypeENUM
      type: string
    TenantAccountUpdateSchema:
      description: Update the tenant account
      title: TenantAccountUpdateSchema
      type: object
      properties:
        defaultStoreUid:
          $ref: '#/components/schemas/OptionalUID'
        displayName:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        firstname:
          type: string
        lastname:
          type: string
        mobile:
          type: string
        password:
          type: string
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
    TenantCreateSchema:
      title: TenantCreateSchema
      x-stoplight:
        id: ua8xhfrs41oey
      type: object
      required:
        - countryCode
        - name
        - vatNumber
      properties:
        tenantUid:
          $ref: '#/components/schemas/UID'
        countryCode:
          type: string
        name:
          type: string
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        timezone:
          $ref: '#/components/schemas/TimezoneTYPE'
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        duplicateCheckCustomerPhoneNumber:
          type: boolean
          description: 'For PERSON customers: Check for unique phone number and email if true'
        duplicateCheckCustomerVatNumber:
          type: boolean
          description: 'For COMPANY customers: Check for unique vat number if true'
        useOriginalSellerOnCreditLine:
          type: boolean
          x-stoplight:
            id: guys2ujcboo7q
          description: Toogle on/off if the original seller should be used in a existing referenced order
    TenantOnboardRequestSchema:
      title: TenantOnboardRequestSchema
      type: object
      x-stoplight:
        id: w3c6r40dqvkpd
      required:
        - owner
        - tenant
      properties:
        owner:
          type: object
          required:
            - email
            - firstname
            - lastname
          properties:
            email:
              $ref: '#/components/schemas/EmailTYPE'
            firstname:
              type: string
            lastname:
              type: string
            mobile:
              type: string
            tenantUserUid:
              $ref: '#/components/schemas/UID'
        tenant:
          type: object
          required:
            - countryCode
            - name
            - vatNumber
          properties:
            countryCode:
              type: string
            name:
              type: string
            vatNumber:
              $ref: '#/components/schemas/VatNumberTYPE'
            timezone:
              $ref: '#/components/schemas/TimezoneTYPE'
            tenantUid:
              $ref: '#/components/schemas/UID'
        organization:
          type: object
          x-stoplight:
            id: p3krdw00bt1t4
          required:
            - name
          properties:
            organizationUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: 2zhb7ofjkeu0c
        store:
          type: object
          x-stoplight:
            id: k29uwau5w40fy
          required:
            - name
          properties:
            storeUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: 8ste8rk53hvw4
        warehouse:
          type: object
          x-stoplight:
            id: 5x7lzqbwh7vd2
          required:
            - name
          properties:
            warehouseUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: 2al0vaf5go3r0
    TenantOnboardResponseSchema:
      properties:
        message:
          type: string
        tenantUid:
          $ref: '#/components/schemas/UID'
      required:
        - tenantUid
        - message
      title: TenantOnboardResponseSchema
      type: object
      x-stoplight:
        id: xruj3z8c6e9cm
    TenantPaymentMethodCreateRequestSchema:
      title: TenantPaymentMethodCreateRequestSchema
      type: object
      x-stoplight:
        id: evhmso0co5l34
      required:
        - paymentMethodCode
        - position
        - visibility
      properties:
        active:
          type: boolean
        name:
          type: string
          description: Name of the payment method as it should be displayed on screen and receipts
        description:
          type: string
          x-stoplight:
            id: rzladjkc9bqky
          description: 'A description of the payment method, shown in the client'
        receiptText:
          type: string
          maxLength: 500
          description: Text printed on the receipt when this payment method is used (optional).
        tenantPaymentMethodUid:
          $ref: '#/components/schemas/UID'
        settlementCode:
          type: string
          x-stoplight:
            id: jypv3x3xt12ky
        paymentMethodCode:
          $ref: '#/components/schemas/PaymentMethodCodeENUM'
        position:
          type: integer
          x-stoplight:
            id: y8bh46xtom071
          description: order of appearance in lists
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
    TenantPaymentMethodResponseSchema:
      title: TenantPaymentMethodResponseSchema
      type: object
      required:
        - active
        - name
        - description
        - settlementCode
        - paymentMethod
        - allowRefund
        - tenantPaymentMethodUid
        - allowSale
        - allowPrepayment
        - allowCashback
        - parameters
        - externalSystemMappings
        - position
        - visibility
        - requirements
        - amountInput
        - useRounding
        - receiptText
      properties:
        active:
          type: boolean
        name:
          type: string
          description: The name will be displayed in the clients and on the receipt
        description:
          type: string
          x-stoplight:
            id: jwpfhe3niyfz8
          description: 'A description of the payment method, shown in the client'
        receiptText:
          type: string
          maxLength: 500
          description: Text printed on the receipt when this payment method is used. Empty when not configured.
        settlementCode:
          type: string
          x-stoplight:
            id: 5lnq68iuznwb6
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethodResponseSchema'
        allowRefund:
          type: boolean
          description: 'if true, paymentMethod can be used when settling a refund.'
        tenantPaymentMethodUid:
          $ref: '#/components/schemas/UID'
        allowSale:
          type: boolean
          description: 'if true, paymentMethod can be used when settling a sale.'
        allowPrepayment:
          type: boolean
          description: 'if true, paymentMethod can be used when settling a sale.'
          x-stoplight:
            id: uqmgbaxax1t2c
        allowCashback:
          type: boolean
          description: 'if true, settlement amount can be higher than remainingAmount when settling a sale.'
        parameters:
          type: array
          items:
            $ref: '#/components/schemas/TenantPaymentMethodParameterExtractResponseSchema'
        externalSystemMappings:
          type: array
          items:
            $ref: '#/components/schemas/TenantPaymentMethodMappingResponseSchema'
        position:
          type: integer
          x-stoplight:
            id: ytmdkbwtify8a
          description: order of appearance in lists
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        requirements:
          $ref: '#/components/schemas/PaymentMethodRequirementResponseSchema'
        amountInput:
          $ref: '#/components/schemas/TenantPaymentMethodAmountInputENUM'
        useRounding:
          type: boolean
          x-stoplight:
            id: l5vf3mpebmvas
    TenantPaymentMethodUpdateRequestSchema:
      title: TenantPaymentMethodUpdateRequestSchema
      x-stoplight:
        id: hg2l56fgt6u12
      type: object
      properties:
        active:
          type: boolean
        name:
          type: string
          description: The name will be displayed in the clients and on the receipt
        description:
          type: string
          x-stoplight:
            id: je06c661vc62b
          description: 'A description of the payment method, shown in the client'
        receiptText:
          type: string
          maxLength: 500
          description: Text printed on the receipt when this payment method is used. Omit to leave unchanged.
        allowSale:
          type: boolean
        allowRefund:
          type: boolean
        allowCashback:
          type: boolean
        allowPrepayment:
          type: boolean
          x-stoplight:
            id: 6har4vjdhn5ot
        settlementCode:
          type: string
          x-stoplight:
            id: uv2ej04olsz57
        position:
          type: integer
          x-stoplight:
            id: ajomtfuu8piil
          description: order of appearance in lists
        visibility:
          $ref: '#/components/schemas/PaymentMethodVisibilityENUM'
        amountInput:
          $ref: '#/components/schemas/TenantPaymentMethodAmountInputENUM'
        useRounding:
          type: boolean
          x-stoplight:
            id: 8qzp63yyuaurk
        requireCustomer:
          type: boolean
          x-stoplight:
            id: 2t57d873vv8uu
        requireCustomerMobile:
          type: boolean
          x-stoplight:
            id: 74jh2kle8vt3a
        requireCustomerEmail:
          type: boolean
          x-stoplight:
            id: xy6mhi53c2w6e
        requireCustomerType:
          $ref: '#/components/schemas/PaymentMethodCustomerTypeENUM'
        requireCustomerContact:
          type: boolean
          x-stoplight:
            id: kvklosnv5wz52
        requireRefundToSameMethod:
          type: boolean
          x-stoplight:
            id: 3buis5e4bzyvf
        requireExclusiveUse:
          type: boolean
          x-stoplight:
            id: 8ma0f3yvn51qc
    TenantRoleENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | BLOCKED | Blocked from this tenant|
        | ACCESS | Only access to the tenant.|
        | ADMIN | Tenant admin, allow full access to tenant and can add users and new stores.|
        | BACKOFFICE | Access to product, pricelists, etc.|
      enum:
        - ACCESS
        - ADMIN
        - BACKOFFICE
        - BLOCKED
      title: TenantRoleENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    TenantExtensionResponseSchema:
      title: TenantExtensionResponseSchema
      x-stoplight:
        id: ilk5o02dtv3k0
      type: object
      description: TenantExtensionResponseSchema
      required:
        - tenantExtensionUid
        - name
        - active
        - extensionCode
        - hasStoreExtensionSettings
        - tenantParameters
        - statusMessages
        - availableTenantParameters
        - availableStoreParameters
      properties:
        tenantExtensionUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: fsutnt778oclj
        active:
          type: boolean
          x-stoplight:
            id: lenjnhe89q65o
        extensionCode:
          $ref: '#/components/schemas/ExtensionCodeENUM'
        hasStoreExtensionSettings:
          type: boolean
          x-stoplight:
            id: ttz5j16d5k6fx
          description: Indicate if the extension needs to be activated and configured pr store
        tenantParameters:
          type: array
          items:
            $ref: '#/components/schemas/GeneralParameterResponseSchema'
        statusMessages:
          type: array
          x-stoplight:
            id: 3ck5rjfs8am35
          items:
            x-stoplight:
              id: 3bb7z5c7z9vr4
            type: string
        availableTenantParameters:
          type: array
          x-stoplight:
            id: 3qrnhyw101dm4
          deprecated: true
          items:
            $ref: '#/components/schemas/AvailableExtensionParameterSchema'
        availableStoreParameters:
          type: array
          x-stoplight:
            id: shoydh1gakoq8
          items:
            $ref: '#/components/schemas/GeneralParameterResponseSchema'
    TenantExtensionCreateRequestSchema:
      title: TenantExtensionCreateRequestSchema
      type: object
      x-stoplight:
        id: g316iqlkp6udr
      properties:
        extensionCode:
          $ref: '#/components/schemas/ExtensionCodeENUM'
        name:
          type: string
          x-stoplight:
            id: j66b0ycf7fy8g
        tenantExtensionUid:
          $ref: '#/components/schemas/UID'
      required:
        - extensionCode
        - name
    TenantExtensionUpdateRequestSchema:
      title: TenantExtensionUpdateRequestSchema
      type: object
      x-stoplight:
        id: 428jx2ag9owlz
      properties:
        name:
          type: string
          x-stoplight:
            id: q3ysgxjk0dej4
        active:
          type: boolean
        tenantParameters:
          type: array
          x-stoplight:
            id: fvrmjipwah4s9
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
      required:
        - active
    TenantUpdateSchema:
      title: TenantUpdateSchema
      x-stoplight:
        id: ojyxd8f5sy1ob
      type: object
      properties:
        name:
          type: string
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        allowExternalCashDrawer:
          type: boolean
          x-stoplight:
            id: et9soioflyrno
        autoLogout:
          type: integer
          x-stoplight:
            id: e6eta060e39kd
          description: 'time in seconds, 0 means not enabled'
        autoPrintReceipt:
          type: boolean
          x-stoplight:
            id: vm9lhzogf5axv
        showOutOfStockWarning:
          type: boolean
          x-stoplight:
            id: d3tn6m120uveo
        logoAssetUid:
          $ref: '#/components/schemas/OptionalUID'
        splashAssetUid:
          $ref: '#/components/schemas/OptionalUID'
        timezone:
          $ref: '#/components/schemas/TimezoneTYPE'
        numericSkuCounter:
          type: integer
          x-stoplight:
            id: bk7mwiu5hh0zp
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        printCardPaymentDetails:
          type: boolean
          x-stoplight:
            id: 2u6pvc1oy1jmj
          description: toogle on/off payment terminal details on receipt
        sendInvoicesExternally:
          type: boolean
          x-stoplight:
            id: 08r3h5kaes4ns
        duplicateCheckCustomerPhoneNumber:
          type: boolean
          description: 'For PERSON customers: Check for unique phone number and email if true'
        duplicateCheckCustomerVatNumber:
          type: boolean
          description: 'For COMPANY customers: Check for unique vat number if true'
        defaultParkedOrderLifespanDays:
          type: integer
          description: Default lifespan in days for parked orders before expiration
        useOriginalSellerOnCreditLine:
          type: boolean
          x-stoplight:
            id: ksksyrv3mdu8k
          description: |
            toogle on/off if the original seller should be used in a existing referenced order
        defaultCustomerGroupUid:
          $ref: '#/components/schemas/OptionalUID'
        autoSendWelcomeSms:
          type: boolean
          x-stoplight:
            id: thay7j70z5oor
        autoSendWelcomeMail:
          type: boolean
          x-stoplight:
            id: 3rew4jiptjtik
        requirePinCodeForSale:
          type: boolean
          x-stoplight:
            id: vr2zn3il39ix4
        requirePinCodeForCredit:
          type: boolean
          x-stoplight:
            id: 4futhjh60riqb
        printReceiptNumber:
          type: boolean
          x-stoplight:
            id: jkd6snzij7a1h
        requiredCustomerFields:
          type: array
          x-stoplight:
            id: ukvszheq4smpv
          items:
            $ref: '#/components/schemas/CustomerRequiredFieldENUM'
        enforceStrongPin:
          type: boolean
          x-stoplight:
            id: 9aagdt36rm1jd
          description: For user's app PIN/password creation
        customerContactsRequiresEmail:
          type: boolean
          x-stoplight:
            id: subkth2lpuwmk
          description: Indicate if the customer contacts requires email.
        customerContactsEmailDuplicateCheck:
          type: boolean
          description: |-
            This will enable duplicate check on email
            for contacts, so it is not possible to have two
            contacts with the same email.
    TenantUserResponseSchema:
      title: TenantUserResponseSchema
      x-stoplight:
        id: s6xl2ykv2fdyc
      type: object
      required:
        - accountType
        - createdAt
        - displayName
        - email
        - externalId
        - firstname
        - lastAccessed
        - lastModifiedAt
        - lastname
        - mobile
        - status
        - storeAccess
        - tenantUid
        - tenantName
        - tenantRole
        - tenantUserUid
        - userCode
        - languageCode
        - permissions
      properties:
        accountType:
          $ref: '#/components/schemas/TenantAccountTypeENUM'
        createdAt:
          format: date-time
          type: string
        defaultStoreUid:
          $ref: '#/components/schemas/OptionalUID'
        displayName:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastAccessed:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastname:
          type: string
        mobile:
          type: string
        status:
          $ref: '#/components/schemas/TenantUserStatusENUM'
        storeAccess:
          type: array
          items:
            $ref: '#/components/schemas/UserStoreAccessResponseSchema'
        tenantUid:
          $ref: '#/components/schemas/UID'
        tenantName:
          type: string
          x-stoplight:
            id: 7pqimsjhz582p
        tenantRole:
          $ref: '#/components/schemas/TenantRoleENUM'
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        userCode:
          type: string
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        permissions:
          $ref: '#/components/schemas/TenantUserPermissionResponseSchema'
      description: ''
    TenantUserRoleAssignmentRequestSchema:
      title: TenantUserRoleAssignmentRequestSchema
      type: object
      required:
        - tenantRoleUid
      properties:
        tenantRoleUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        organizationUid:
          $ref: '#/components/schemas/UID'
      description: |
        A tenantRole can be assigned at three levels:
        - Only set a tenantRoleUid in the request: The role will be assigned at tenant level
        - Set organizationUid and tenantRoleUid: The role will be assigned at organization level
        - Set storeUid and tenantRoleUid: The role will be assigned at store level

        An error occurs if both storeUid and organizationUid is set in the request.

        The levels are ranked this way, from top to bottom: tenant, organization, store

        A permission set at higher level overrides lower level assignments.
    TenantUserRoleAssignmentResponseSchema:
      title: TenantUserRoleAssignmentResponseSchema
      type: object
      required:
        - tenantRole
        - assignedAt
        - assignedBy
        - createdAt
        - lastModifiedAt
        - tenantUserRoleAssignmentUid
        - isSystemRole
      properties:
        tenantRole:
          $ref: '#/components/schemas/BasicTenantRoleResponseSchema'
        organization:
          $ref: '#/components/schemas/BasicOrganizationResponseSchema'
        store:
          $ref: '#/components/schemas/BasicStoreResponseSchema'
        assignedAt:
          type: string
          format: date-time
          description: When the role was assigned
        assignedBy:
          $ref: '#/components/schemas/OptionalUID'
        createdAt:
          type: string
          format: date-time
        lastModifiedAt:
          type: string
          format: date-time
        tenantUserRoleAssignmentUid:
          $ref: '#/components/schemas/UID'
        isSystemRole:
          type: boolean
          x-stoplight:
            id: q0sk9loi5rkbq
    TenantUserTokenResponseSchema:
      properties:
        tenantUserTokenUid:
          $ref: '#/components/schemas/UID'
        token:
          type: string
      required:
        - token
        - tenantUserTokenUid
      title: TenantUserTokenResponseSchema
      type: object
    TillResponseSchema:
      title: TillResponseSchema
      x-stoplight:
        id: sbv90sxeajfo6
      type: object
      required:
        - cashDrawer
        - createdAt
        - lastModifiedAt
        - lastOrderUid
        - lastOrderNumber
        - name
        - paymentTerminal
        - settings
        - tillUid
        - tillNumber
        - device
      properties:
        barcodePrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        cashDrawer:
          type: string
        createdAt:
          format: date-time
          type: string
        deviceIdentifier:
          type: string
          deprecated: true
          nullable: true
        lastModifiedAt:
          format: date-time
          type: string
        lastOrderUid:
          $ref: '#/components/schemas/UID'
        lastOrderNumber:
          x-stoplight:
            id: nwpb2r9gdw3yf
          type: string
        name:
          type: string
        paymentTerminal:
          $ref: '#/components/schemas/TillPaymentTerminalENUM'
        receiptPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        regularPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        settings:
          type: array
          items:
            $ref: '#/components/schemas/TillSettingSchema'
        tillUid:
          $ref: '#/components/schemas/UID'
        tillNumber:
          type: integer
        appSettings:
          $ref: '#/components/schemas/TillAppSettingsSchema'
        device:
          $ref: '#/components/schemas/TillDeviceResponseSchema'
    TillCashReportResponseSchema:
      description: ' Cash report for a till'
      x-stoplight:
        id: kffyc8vnto1bd
      title: TillCashReportResponseSchema
      type: object
      properties:
        bankdepositAmount:
          type: integer
          nullable: true
        bankdepositReference:
          type: string
        cashDifferenceAmount:
          description: |-
            The cash difference amount.  
            Calculation: (countedAmount + withdrawalAmount ) - (changeAmount + cashRevenueAmount)
          type: integer
        cashRevenueAmount:
          description: After the till is closed the cash revenue will be calculated in this field
          type: integer
        cashreportUid:
          $ref: '#/components/schemas/UID'
        changeAmount:
          type: integer
        closedAt:
          format: date-time
          type: string
          nullable: true
        closedByDisplayName:
          type: string
        comment:
          type: string
        countedAmount:
          type: integer
          nullable: true
        openAt:
          format: date-time
          type: string
        openByDisplayName:
          type: string
        status:
          $ref: '#/components/schemas/TillStatusENUM'
        withdrawalAmount:
          type: integer
          nullable: true
        cashDetailsAtOpen:
          type: array
          items:
            $ref: '#/components/schemas/CashDetailSchema'
        cashDetailsAtClose:
          type: array
          items:
            $ref: '#/components/schemas/CashDetailSchema'
      required:
        - bankdepositAmount
        - bankdepositReference
        - cashDifferenceAmount
        - cashRevenueAmount
        - cashreportUid
        - changeAmount
        - closedAt
        - closedByDisplayName
        - comment
        - countedAmount
        - openAt
        - openByDisplayName
        - status
        - withdrawalAmount
    TillCreateSchema:
      description: Create a new till
      x-stoplight:
        id: qwqzu5zfcq8kc
      title: TillCreateSchema
      type: object
      required:
        - name
        - tillNumber
      properties:
        barcodePrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        cashDrawer:
          type: string
        name:
          type: string
        paymentTerminal:
          $ref: '#/components/schemas/TillPaymentTerminalENUM'
        receiptPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        regularPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        settings:
          type: array
          items:
            $ref: '#/components/schemas/TillSettingSchema'
        tillNumber:
          type: integer
        tillUid:
          $ref: '#/components/schemas/UID'
        appSettings:
          $ref: '#/components/schemas/TillAppSettingsUpdateSchema'
    TillDeviceRegisterSchema:
      description: ''
      properties:
        deviceIdentifier:
          type: string
      required:
        - deviceIdentifier
      title: TillDeviceRegisterSchema
      type: object
    TillPaymentTerminalENUM:
      enum:
        - NONE
        - ADYEN
        - PAYEX
        - STRIPE
        - NETS
        - VERIFONE
        - SOFTPAY
      title: TillPaymentTerminalENUM
      type: string
      x-stoplight:
        id: ncmwy7nnwojv8
    TillSettingSchema:
      description: Till specific settings
      x-stoplight:
        id: owp8ei444g1dw
      properties:
        key:
          $ref: '#/components/schemas/TillSettingKeyENUM'
        value:
          type: string
      required:
        - key
        - value
      title: TillSettingSchema
      type: object
    TillSettingKeyENUM:
      enum:
        - STRIPE_TERMINAL_ID
        - ADYEN_POS_TERMINAL_ID
        - PAYEX_TERMINAL_IP
        - PAYEX_TERMINAL_PORT
        - PAYEX_COMMAND_QUEUE
        - NETS_TERMINAL_ID
        - VERIFONE_TERMINAL_POI_ID
        - SOFTPAY_APP_ID
      title: TillSettingKeyENUM
      type: string
    TillStatusENUM:
      enum:
        - OPEN
        - CLOSED
        - CLOSED_NOT_COUNTED
      title: TillStatus
      type: string
    TillUpdateSchema:
      description: Update till
      title: TillUpdateSchema
      type: object
      properties:
        barcodePrinter:
          type: string
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
          deprecated: true
        cashDrawer:
          type: string
        name:
          type: string
        paymentTerminal:
          $ref: '#/components/schemas/TillPaymentTerminalENUM'
        receiptPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        regularPrinter:
          type: string
          deprecated: true
          description: 'NOTE: This field is deprecated. Printers should be defined on the device'
        settings:
          type: array
          items:
            $ref: '#/components/schemas/TillSettingSchema'
        tillNumber:
          type: integer
        appSettings:
          $ref: '#/components/schemas/TillAppSettingsUpdateSchema'
    TransactionTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECEIVE | Receive (Purchase)|
        | DELIVERY | Deliver ( Sales)|
        | MOVE | Move between depts|
        | RETURN | Return of items|
        | INVENTORY_CONTROL | Inventory Control|
        | INTERNAL | Theft / Internal use|
        | SET_STOCK | Set stock|
        | ADJUST_STOCK | Adjust stock|
        | ADJUST_COST | Adjust cost|
        | RMA_ORDER | RMA Order|
      enum:
        - RECEIVE
        - DELIVERY
        - MOVE
        - RETURN
        - INVENTORY_CONTROL
        - INTERNAL
        - SET_STOCK
        - ADJUST_STOCK
        - ADJUST_COST
        - RMA_ORDER
      title: TransactionTypeENUM
      type: string
      x-internal: false
      x-stoplight:
        id: 0qfog5zykqtq5
      x-tags:
        - ENUM
    TransportHeaderSchema:
      properties:
        key:
          type: string
        value:
          type: string
      required:
        - key
        - value
      description: Transport Header Schema
      title: TransportHeaderSchema
      type: object
    TransportCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/TransportUpdateRequestSchema'
        - properties:
            httpTransportUid:
              $ref: '#/components/schemas/UID'
          type: object
      title: TransportCreateRequestSchema
    TransportUpdateRequestSchema:
      description: Transport Request Schema
      x-stoplight:
        id: sndjuv5wpa0np
      title: TransportUpdateRequestSchema
      type: object
      properties:
        headers:
          type: array
          items:
            $ref: '#/components/schemas/TransportHeaderSchema'
        name:
          type: string
        password:
          type: string
        securityType:
          enum:
            - NONE
            - BASIC_AUTH
            - BEARER_TOKEN
          type: string
        token:
          type: string
        url:
          type: string
        username:
          type: string
      required:
        - name
        - securityType
        - url
    HttpTransportResponseSchema:
      properties:
        headers:
          items:
            $ref: '#/components/schemas/TransportHeaderSchema'
          type: array
        name:
          type: string
        password:
          type: string
        securityType:
          enum:
            - NONE
            - BASIC_AUTH
            - BEARER_TOKEN
          type: string
        token:
          type: string
        httpTransportUid:
          $ref: '#/components/schemas/UID'
        url:
          type: string
        username:
          type: string
      required:
        - httpTransportUid
        - name
        - url
        - securityType
        - username
        - password
        - token
        - headers
      description: Transport Response Schema
      title: HttpTransportResponseSchema
      type: object
    UserStoreAccessResponseSchema:
      title: UserStoreAccessResponseSchema
      x-stoplight:
        id: l36nd3h0ws4qb
      type: object
      required:
        - createdAt
        - lastModifiedAt
        - storeAccessUid
        - storeUid
        - storeRole
      properties:
        createdAt:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        storeAccessUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        storeRole:
          $ref: '#/components/schemas/StoreRoleENUM'
    UserStoreAccessCreateSchema:
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        storeRole:
          $ref: '#/components/schemas/StoreRoleENUM'
      required:
        - storeUid
        - storeRole
      title: UserStoreAccessCreateSchema
      type: object
    VatCodeSchema:
      x-stoplight:
        id: vsiwwjrtel5f1
      title: VatCodeSchema
      type: object
      required:
        - createdAt
        - fromDate
        - lastModifiedAt
        - name
        - rate
        - vatCodeUid
        - countryCode
      properties:
        createdAt:
          format: date-time
          type: string
        fromDate:
          format: date-time
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        rate:
          type: integer
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        countryCode:
          type: string
    VatNumberTYPE:
      description: VAT identification number for value added tax reporting purposes.
      title: VatNumber
      type: string
      x-internal: false
      x-tags:
        - TYPE
    VatPrintENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        |SUM| Print as a part of orderlines.|
        |SEPARATE| Print as a separate field.|
      enum:
        - SUM
        - SEPARATE
      title: vatPrintENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    VippsCallbackSchema:
      title: VippsCallbackSchema
      type: object
      x-internal: true
      properties:
        errorInfo:
          type: object
          properties:
            contextId:
              type: string
            errorCode:
              type: string
            errorGroup:
              type: string
            errorMessage:
              type: string
          required:
            - errorCode
            - errorGroup
            - errorMessage
        merchantSerialNumber:
          type: string
        orderId:
          type: string
          x-stoplight:
            id: 690flx1d3mq22
        transactionInfo:
          type: object
          required:
            - amount
            - status
            - timeStamp
          properties:
            amount:
              type: integer
            status:
              type: string
            timeStamp:
              format: date-time
              type: string
            transactionId:
              type: string
      required:
        - merchantSerialNumber
        - orderId
        - transactionInfo
    WarehouseResponseSchema:
      x-stoplight:
        id: 91addsy85j41m
      title: WarehouseResponseSchema
      type: object
      x-tags:
        - Warehouse
      properties:
        createdAt:
          format: date-time
          type: string
        externalId:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        name:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        accessList:
          type: array
          x-stoplight:
            id: 4fh3yuzd78dlr
          items:
            $ref: '#/components/schemas/MyWarehouseAccessResponseSchema'
      required:
        - createdAt
        - externalId
        - lastModifiedAt
        - name
        - warehouseUid
        - accessList
    WarehouseAccessResponseSchema:
      properties:
        role:
          $ref: '#/components/schemas/WarehouseAccessRoleENUM'
        storeUid:
          $ref: '#/components/schemas/UID'
        warehouse:
          $ref: '#/components/schemas/WarehouseResponseSchema'
        warehouseAccessUid:
          $ref: '#/components/schemas/UID'
      x-stoplight:
        id: s7ufk0vf0onmw
      required:
        - warehouseAccessUid
        - role
      title: WarehouseAccessResponseSchema
      type: object
      x-tags:
        - Warehouse
    MyWarehouseAccessResponseSchema:
      title: MyWarehouseAccessResponseSchema
      type: object
      x-tags:
        - Warehouse
      x-stoplight:
        id: xmtveyt5bjzxx
      properties:
        role:
          $ref: '#/components/schemas/WarehouseAccessRoleENUM'
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
        warehouseAccessUid:
          $ref: '#/components/schemas/UID'
      required:
        - role
        - storeUid
        - storeName
        - warehouseUid
        - warehouseName
        - warehouseAccessUid
    WarehouseAccessGrantSchema:
      properties:
        role:
          $ref: '#/components/schemas/WarehouseAccessRoleENUM'
        storeUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeUid
        - role
      title: WarehouseAccessGrantSchema
      type: object
      x-tags:
        - Warehouse
    WarehouseAccessRoleENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | DELIVER | Can deliver products using stock from this warehouse. |
        | MOVE | Can move stock to and from this warehouse. |
        | RECEIVE | Can receive purchase orders to this warehouse. |
        | RESERVE | Can make stock reservations from this warehouse. |
        | RETURN | Can return stock to this warehouse. |
        | VIEW | Only able to view quantity.|
      enum:
        - DELIVER
        - MOVE
        - RECEIVE
        - RESERVE
        - RETURN
        - VIEW
      title: WarehouseAccessRoleENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    WarehouseCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/WarehouseUpdateRequestSchema'
        - properties:
            warehouseUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: WarehouseCreateRequestSchema
    WarehouseUpdateRequestSchema:
      title: WarehouseUpdateRequestSchema
      x-stoplight:
        id: zewz61m8oy87g
      type: object
      x-tags:
        - Warehouse
      properties:
        externalId:
          type: string
        name:
          type: string
      required:
        - name
    StockDetailResponseSchema:
      x-stoplight:
        id: xgu9f1h45vcac
      title: StockDetails
      type: object
      x-tags:
        - Warehouse
      properties:
        costPrice:
          type: integer
          nullable: true
        createdAt:
          format: date-time
          type: string
        deliveredAt:
          type: string
          format: date-time
          nullable: true
        lastModifiedAt:
          format: date-time
          type: string
        origin:
          $ref: '#/components/schemas/TransactionTypeENUM'
        receivedAt:
          type: string
          format: date-time
        serialnumber:
          type: string
      required:
        - costPrice
        - createdAt
        - deliveredAt
        - lastModifiedAt
        - origin
        - receivedAt
        - serialnumber
    WarehouseStockDetailsResponseSchema:
      x-stoplight:
        id: xoztj5747p7yp
      title: WarehouseStockDetailsResponseSchema
      type: object
      x-tags:
        - Product
      properties:
        locationLabel:
          type: string
        maxStockLevel:
          type: integer
          x-stoplight:
            id: hj1cuk0h5g427
        minStockLevel:
          type: integer
          x-stoplight:
            id: hkcin92by7d2h
        quantityReserved:
          type: integer
        quantityStock:
          type: integer
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
      required:
        - locationLabel
        - maxStockLevel
        - minStockLevel
        - quantityReserved
        - quantityStock
        - storeUid
        - storeName
        - warehouseUid
        - warehouseName
    StoreProductWarehouseStockDetailsSchema:
      title: StoreProductWarehouseStockDetailsSchema
      x-stoplight:
        id: wc657wjmxj6f9
      type: object
      x-tags:
        - Product
      required:
        - grossProfitAmount
        - grossProfitPercentage
        - costPrice
        - quantityReserved
        - quantityStock
        - locationLabel
        - storeUid
        - storeName
        - warehouseUid
        - warehouseName
      properties:
        grossProfitAmount:
          type: integer
          x-stoplight:
            id: rb7hce0hpmhcr
        grossProfitPercentage:
          type: integer
          x-stoplight:
            id: 5my4kicyo0lbh
        costPrice:
          type: integer
          x-stoplight:
            id: zhb3cclfxu6a5
        quantityReserved:
          type: integer
        quantityStock:
          type: integer
        locationLabel:
          type: string
          x-stoplight:
            id: j1f0n0hm42tyb
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseName:
          type: string
    WebhookActionENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | PRODUCT_CREATE | Create new product |
        | PRODUCT_UPDATE | Update existing product |
        | PRODUCT_DELETE | Product deleted |
        | CUSTOMER_CREATE | Create new customer|
        | CUSTOMER_UPDATE | Update existing customer|
        | CUSTOMER_DELETE | Customer deleted|
        | ORDER_SETTLED | New order. Order status is SETTLED|
        | ORDER_STATE_CHANGE | Order changes state|
        | ORDER_RECEIPT_SETTLED | A receipt is SETTLED |
        | ORDER_DELIVERED | Existing order. Order status DELIVERED|
        | ORDER_LINE_DELIVERED | An order line has been delivered |
        | ORDER_HANDLING_STATE_CHANGED | An order handling state changed (notably when set to NOT_STARTED, IN_PROGRESS, ON_HOLD, or COMPLETE) |
        | TILL_CLOSED | Till has been counted and closed.|
        | TILL_OPEN | Till has been opened.|
        | PRICE_CREATE | Create new price.|
        | PRICE_UPDATE | Update Price.|
        | PRICE_DELETE | Price deleted |
        | STOCK_CHANGE | Stock for a warehouseUid and productUid has changed.|
        | PRODUCT_MEDIA_CHANGE | Product media has changed (create/update/delete).|
        | PURCHASE_RECEIVED | Purchase order fully received |
        | ORDER_LINE_RESERVATION_CHANGE | Order line reservation changed |
      enum:
        - PRODUCT_CREATE
        - PRODUCT_UPDATE
        - PRODUCT_DELETE
        - CUSTOMER_CREATE
        - CUSTOMER_UPDATE
        - CUSTOMER_DELETE
        - ORDER_SETTLED
        - ORDER_DELIVERED
        - ORDER_STATE_CHANGE
        - ORDER_LINE_DELIVERED
        - TILL_CLOSED
        - TILL_OPEN
        - PRICE_CREATE
        - PRICE_UPDATE
        - PRICE_DELETE
        - STOCK_CHANGE
        - PRODUCT_MEDIA_CHANGE
        - PURCHASE_RECEIVED
        - ORDER_HANDLING_STATE_CHANGED
        - ORDER_RECEIPT_SETTLED
        - ORDER_LINE_RESERVATION_CHANGE
      title: WebhookActionENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    WebhookCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/WebhookUpdateRequestSchema'
        - properties:
            webhookUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: WebhookCreateRequestSchema
      description: Webhook Create Request Schema
    WebhookUpdateRequestSchema:
      description: Webhook Update Request Schema
      x-stoplight:
        id: ajucwkjtp6mdg
      title: WebhookUpdateRequestSchema
      type: object
      properties:
        action:
          $ref: '#/components/schemas/WebhookActionENUM'
      required:
        - action
    WebhookResponseSchema:
      properties:
        action:
          $ref: '#/components/schemas/WebhookActionENUM'
        httpTransport:
          $ref: '#/components/schemas/HttpTransportResponseSchema'
        webhookUid:
          $ref: '#/components/schemas/UID'
      required:
        - action
        - webhookUid
        - httpTransport
      description: Webhook Response
      title: WebhookResponseSchema
      type: object
    ZReportCountAmountNameSchema:
      properties:
        amount:
          type: integer
        count:
          type: integer
        name:
          type: string
      required:
        - name
        - count
        - amount
      title: ZReportCountAmountNameSchema
      type: object
      x-stoplight:
        id: txisvqtu7xz7e
    ZReportTotalsSchema:
      title: ZReportTotalsSchema
      type: object
      properties:
        sales:
          $ref: '#/components/schemas/ZReportCountAmountSchema'
        returns:
          $ref: '#/components/schemas/ZReportCountAmountSchema'
        grandTotal:
          $ref: '#/components/schemas/ZReportCountAmountSchema'
      required:
        - sales
        - returns
        - grandTotal
    ZReportCountAmountSchema:
      properties:
        amount:
          type: integer
        count:
          type: integer
      required:
        - count
        - amount
      title: ZReportCountAmountSchema
      type: object
      x-stoplight:
        id: t60uvbrkg12kn
    ZReportCountSchema:
      properties:
        count:
          type: integer
      required:
        - count
      title: ZReportCountSchema
      type: object
      x-stoplight:
        id: ltowjn9rf43hi
    ZReportHeaderSchema:
      properties:
        companyName:
          type: string
        date:
          format: date
          type: string
        shopName:
          type: string
        tillUid:
          $ref: '#/components/schemas/UID'
        userName:
          type: string
        vatNumber:
          type: string
        xz:
          type: string
        zreportId:
          type: string
      required:
        - xz
        - zreportId
        - companyName
        - vatNumber
        - shopName
        - tillUid
        - userName
        - date
      title: ZReportHeaderSchema
      type: object
      x-stoplight:
        id: 3fiauii7cpos6
    ZReportResponseSchema:
      title: ZReportResponseSchema
      type: object
      x-stoplight:
        id: tej076qmwlcw7
      properties:
        cashAtStart:
          type: integer
        cashDrawerOpening:
          $ref: '#/components/schemas/ZReportCountSchema'
        discountSale:
          $ref: '#/components/schemas/ZReportCountAmountSchema'
        header:
          $ref: '#/components/schemas/ZReportHeaderSchema'
        lineCorrections:
          $ref: '#/components/schemas/ZReportCountSchema'
        productLookups:
          type: array
          items:
            $ref: '#/components/schemas/ZReportCountAmountNameSchema'
        receiptCopies:
          $ref: '#/components/schemas/ZReportCountSchema'
        saleByMainGroup:
          type: array
          items:
            $ref: '#/components/schemas/ZReportCountAmountNameSchema'
        saleBySettlementId:
          type: array
          items:
            $ref: '#/components/schemas/ZReportCountAmountNameSchema'
        saleByVATCode:
          type: array
          items:
            $ref: '#/components/schemas/ZReportCountAmountNameSchema'
        orderTotals:
          $ref: '#/components/schemas/ZReportTotalsSchema'
      required:
        - cashAtStart
        - cashDrawerOpening
        - discountSale
        - header
        - lineCorrections
        - productLookups
        - receiptCopies
        - saleByMainGroup
        - saleBySettlementId
        - saleByVATCode
        - orderTotals
    ServiceOrderResponseSchema:
      title: ServiceOrderResponseSchema
      x-stoplight:
        id: q5xyfudmy7vlz
      type: object
      x-tags:
        - Service
      required:
        - serviceOrderUid
        - tenantUid
        - storeUid
        - orderProductLineUid
        - orderUid
        - customerUid
        - createdFromStoreUid
        - assignedUserUid
        - assignedUserDisplayName
        - serviceTypeUid
        - serviceTypeName
        - serviceStatusUid
        - serviceStatusName
        - serviceState
        - title
        - serviceNumber
        - externalServiceNumber
        - description
        - locationLabel
        - priority
        - requiresPriceEstimate
        - estimatedPrice
        - maxPrice
        - readyAtEstimate
        - readyAtNeeded
        - publicPageHash
        - warranty
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - totals
        - items
        - assets
        - rmaOrderItemUid
        - rmaOrderUid
      properties:
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        tenantUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        orderProductLineUid:
          $ref: '#/components/schemas/OptionalUID'
        orderUid:
          $ref: '#/components/schemas/OptionalUID'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        createdFromStoreUid:
          $ref: '#/components/schemas/UID'
        assignedUserUid:
          $ref: '#/components/schemas/OptionalUID'
        assignedUserDisplayName:
          type: string
          x-stoplight:
            id: 6qzbqicerwzqq
        serviceTypeUid:
          $ref: '#/components/schemas/UID'
        serviceTypeName:
          type: string
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        serviceStatusName:
          type: string
        serviceState:
          $ref: '#/components/schemas/ServiceStateENUM'
        title:
          type: string
        serviceNumber:
          type: string
          x-stoplight:
            id: e9wsuk0dbcjmw
        externalServiceNumber:
          type: string
          x-stoplight:
            id: kpurhmcjjosyy
        description:
          type: string
        locationLabel:
          type: string
          x-stoplight:
            id: m6df0ym2k1v6v
        priority:
          $ref: '#/components/schemas/PriorityENUM'
        requiresPriceEstimate:
          type: boolean
        estimatedPrice:
          type: integer
        maxPrice:
          type: integer
          x-stoplight:
            id: zyxt4yutzea56
        readyAtEstimate:
          type: string
          format: date-time
        readyAtNeeded:
          type: string
          format: date-time
        publicPageHash:
          type: string
        warranty:
          type: boolean
          x-stoplight:
            id: ibimf2iqtr06f
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        totals:
          $ref: '#/components/schemas/ServiceOrderTotalsSchema'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ServiceOrderItemResponseSchema'
        assets:
          type: array
          x-stoplight:
            id: bb4qtnq7jc8nn
          items:
            $ref: '#/components/schemas/ServiceOrderAssetResponse'
        rmaOrderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        rmaOrderUid:
          $ref: '#/components/schemas/OptionalUID'
    ServiceTypeResponseSchema:
      title: ServiceTypeResponseSchema
      x-stoplight:
        id: jb2wbwbe9bey5
      type: object
      x-tags:
        - Service
      properties:
        serviceTypeUid:
          $ref: '#/components/schemas/UID'
        tenantUid:
          $ref: '#/components/schemas/UID'
        serviceStatuses:
          x-stoplight:
            id: 5c06jmorzm87v
          type: array
          items:
            $ref: '#/components/schemas/ServiceStatusWithPosition'
        name:
          type: string
        deprecated:
          type: boolean
      required:
        - serviceTypeUid
        - tenantUid
        - serviceStatuses
        - name
        - deprecated
    ServiceStatusResponseSchema:
      title: ServiceStatusResponseSchema
      x-stoplight:
        id: ll4a3aj2ytbe8
      type: object
      x-tags:
        - Service
      properties:
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        tenantUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
        state:
          $ref: '#/components/schemas/ServiceStateENUM'
        deprecated:
          type: boolean
          default: false
      required:
        - serviceStatusUid
        - tenantUid
        - name
        - state
        - deprecated
    ServiceStateENUM:
      title: ServiceStateENUM
      x-stoplight:
        id: 8tmmdevns9fi4
      type: string
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
      x-tags:
        - Service
    VisibilityENUM:
      title: VisibilityENUM
      x-stoplight:
        id: khx66286ra6o9
      type: string
      enum:
        - INTERNAL
        - PUBLIC
        - REPORT
      x-tags:
        - Service
    ServiceHoursResponseSchema:
      title: ServiceHoursResponseSchema
      x-stoplight:
        id: 0elbsh41xfg1m
      type: object
      x-tags:
        - Service
      required:
        - serviceHoursUid
        - serviceOrderUid
        - tenantUserUid
        - note
        - serviceDate
        - usedMinutes
        - billedMinutes
        - hourPrice
        - totalPrice
        - tenantUserDisplayName
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - hourlyRateUid
        - salesOrderUid
      properties:
        serviceHoursUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        note:
          type: string
        serviceDate:
          type: string
          format: date-time
        usedMinutes:
          type: integer
        billedMinutes:
          type: integer
        hourPrice:
          type: integer
        totalPrice:
          type: integer
          x-stoplight:
            id: 9f39gk18i9ahh
        tenantUserDisplayName:
          type: string
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        hourlyRateUid:
          $ref: '#/components/schemas/UID'
        salesOrderUid:
          $ref: '#/components/schemas/UID'
    MessageTypeENUM:
      title: MessageTypeENUM
      x-stoplight:
        id: 6xodj6n6n13j9
      type: string
      enum:
        - EMAIL
        - SMS
      x-tags:
        - Service
    PriorityENUM:
      title: PriorityENUM
      x-stoplight:
        id: ltb1hwrdtuzro
      type: string
      enum:
        - HIGHEST
        - HIGH
        - LOW
        - NONE
      x-tags:
        - Service
      default: NONE
    ServiceOrderItemResponseSchema:
      title: ServiceOrderItemResponseSchema
      x-stoplight:
        id: yl37keboupf55
      type: object
      x-tags:
        - Service
      required:
        - serviceOrderItemUid
        - serviceOrderUid
        - warehouseUid
        - tenantUserUid
        - productUid
        - salesOrderUid
        - quantity
        - name
        - sku
        - price
        - costPrice
        - originalPrice
        - totalPrice
        - totalCostPrice
        - serialNumber
        - note
        - tenantUserDisplayName
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        serviceOrderItemUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        productUid:
          $ref: '#/components/schemas/UID'
        salesOrderUid:
          $ref: '#/components/schemas/OptionalUID'
        quantity:
          type: integer
        name:
          type: string
        sku:
          type: string
          x-stoplight:
            id: duixustfuyusx
        price:
          type: integer
        costPrice:
          type: integer
          x-stoplight:
            id: ks7q6cm2nzudw
        originalPrice:
          type: integer
          x-stoplight:
            id: oek5plq524v6n
        totalPrice:
          type: integer
          x-stoplight:
            id: 19kkpw27osu1c
        totalCostPrice:
          type: integer
          x-stoplight:
            id: 87521nzv7ez8m
        serialNumber:
          type: string
        note:
          type: string
        tenantUserDisplayName:
          type: string
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
    ServiceEventResponseSchema:
      title: ServiceEventResponseSchema
      x-stoplight:
        id: kb4upbcgl8tcn
      type: object
      required:
        - serviceEventUid
        - serviceOrderUid
        - serviceStatusUid
        - tenantUserUid
        - tenantUserDisplayName
        - note
        - visibility
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - notifications
      properties:
        serviceEventUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        tenantUserDisplayName:
          type: string
        note:
          type: string
        visibility:
          $ref: '#/components/schemas/VisibilityENUM'
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        notifications:
          x-stoplight:
            id: y2o1pabqvoxo9
          type: array
          items:
            $ref: '#/components/schemas/ServiceEventNotificationResponseSchema'
    OrderPDFSchema:
      title: OrderPDFSchema
      x-stoplight:
        id: kk9ozwyz7m64p
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OrderPdfTypeENUM'
      required:
        - type
    OrderPrintSchema:
      title: OrderPrintSchema
      type: object
      x-stoplight:
        id: kr9cvrljiqodb
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/OrderPrintTypeENUM'
        printerUid:
          description: The printer to send the print to
          $ref: '#/components/schemas/UID'
        orderItemUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        exchangenoteValidUntil:
          type: string
          description: |-
            Only valid for type EXCHANGENOTE.
            Sets a date that the exchange note is valid until.
            If not set, exchangeNoteValidUntil is calculated from the store's exchangeNoteValidDays setting.
            Stored on all orderItemUids in request, usually only one item.
          x-stoplight:
            id: 622slhyuunseh
          format: date
    OrderEmailSchema:
      title: OrderEmailSchema
      x-stoplight:
        id: ln2o1j9v49vmb
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OrderEmailTypeENUM'
        email:
          $ref: '#/components/schemas/EmailTYPE'
        orderItemUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
      required:
        - type
        - email
    ProductBarcodeTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        |BARCODE|        Print barcode labels|
      minLength: 1
      title: ProductBarcodeTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - BARCODE
      x-stoplight:
        id: qv1jloxlevvjr
    ImportEntityENUM:
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | PRODUCTS | Import products |
        | PRICES | Import prices|
        | PRODUCT_GROUPS | Import product groups |
        | BRANDS | Import brands|
        | CUSTOMERS | Import customers|
        | STOCK | Import stock values|
        | SUPPLIER_PRODUCT | Import Product supplier information|
        | SUPPLIERS | Import suppliers|
      minLength: 1
      title: ImportEntityENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - PRODUCTS
        - PRICES
        - PRODUCT_GROUPS
        - BRANDS
        - CUSTOMERS
        - STOCK
        - SUPPLIER_PRODUCT
        - SUPPLIERS
      x-stoplight:
        id: gyoswm4t68nok
    ImportFormatENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | EXCEL | XLS file |
      minLength: 1
      title: ImportFormatENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: hnirh058vy15g
      enum:
        - EXCEL
    ImportStateENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NOT_STARTED | Import not started |
        | IMPORT_IN_PROGRESS | Import is running |
        | IMPORT_ABORT | Import is aborting| 
        | IMPORT_ABORTED | Import has been aborted |
        | VALIDATE_IN_PROGRESS | Validate is running| 
        | COMPLETE_NOTHING_TO_IMPORT | Import is done, but there where nothing to import |
        | COMPLETE | Import complete |
        | VALIDATE_FAILED | Validate failed |
        | IMPORT_FAILED | Import failed |
        | IMPORT_ABORT | Import is aborting |
        | IMPORT_ABORTED | Import has been aborted  |
        | READY_TO_IMPORT | Validation OK, import is ready |
      minLength: 1
      title: ImportStateENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: hoxx3vf53qg7w
      enum:
        - NOT_STARTED
        - COMPLETE
        - COMPLETE_NOTHING_TO_IMPORT
        - IMPORT_FAILED
        - IMPORT_ABORT
        - IMPORT_ABORTED
        - VALIDATE_FAILED
        - VALIDATE_ABORT
        - VALIDATE_ABORTED
        - IMPORT_IN_PROGRESS
        - VALIDATE_IN_PROGRESS
        - READY_TO_IMPORT
    ImportActionENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | SIMULATE | Do a simulate on import. Return content without saving |
        | PROCESS | Process file with given template. Save file if no errors|
      minLength: 1
      title: ImportActionENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: 09pe5d0afepxs
      enum:
        - SIMULATE
        - PROCESS
    ImportOperationENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | INSERT | Only insert non-existing records, existing records will be ignored|
        | UPDATE | Only update existing records, non-existing records will be ignored|
        | UPSERT | non-existing records will be inserted, existing records will be updated|
      minLength: 1
      title: ImportOperationENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      x-stoplight:
        id: j8ffw3i2wgonm
      enum:
        - INSERT
        - UPDATE
        - UPSERT
    ProductBarcodePrintSchema:
      title: ProductBarcodePrintSchema
      x-stoplight:
        id: vite27f9l2gzt
      type: object
      required:
        - type
        - template
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/ProductBarcodeTypeENUM'
        template:
          type: string
          description: Must be a valid template name from /v2/metadata/labels
        peripheralUid:
          $ref: '#/components/schemas/DeprecatedUID'
        printerUid:
          $ref: '#/components/schemas/UID'
        copies:
          type: integer
        serialnumbers:
          type: array
          description: 'Prints a label for each serial number, appending the serial number as barcode and plain text.'
          items:
            type: string
      description: The `printerUid` will be required when the peripheralUid is removed.
    ImportTemplateCreateRequestSchema:
      title: ImportTemplateCreateRequestSchema
      type: object
      x-stoplight:
        id: 65il1g5hqbdko
      required:
        - name
        - entity
        - importFormat
      properties:
        name:
          type: string
        description:
          type: string
        entity:
          $ref: '#/components/schemas/ImportEntityENUM'
        importFormat:
          $ref: '#/components/schemas/ImportFormatENUM'
        templateUid:
          $ref: '#/components/schemas/UID'
    ImportTemplateUpdateRequestSchema:
      title: ImportTemplateUpdateRequestSchema
      type: object
      x-stoplight:
        id: cuq57tvxkbr1k
      required:
        - name
      properties:
        name:
          type: string
        description:
          type: string
    ImportLayoutCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ImportLayoutUpdateRequestSchema'
        - properties:
            layoutUid:
              $ref: '#/components/schemas/UID'
          type: object
      title: ImportLayoutCreateRequestSchema
    ImportLayoutUpdateRequestSchema:
      title: ImportLayoutUpdateRequestSchema
      type: object
      x-stoplight:
        id: 50ueukb2b6ogc
      properties:
        fieldName:
          type: string
          description: Entity field name in FlowRetail
        value:
          type: string
          description: |-
            Static value, or reference to field in import file.

            Example: For EXCEL import use `A` to get the value from column A
      required:
        - fieldName
        - value
    ImportConversionCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ImportConversionUpdateRequestSchema'
        - properties:
            conversionUid:
              $ref: '#/components/schemas/UID'
      x-stoplight:
        id: 1bwbgwqjxav7f
      type: object
      title: ImportConversionCreateRequestSchema
    ImportConversionUpdateRequestSchema:
      title: ImportConversionUpdateRequestSchema
      type: object
      x-stoplight:
        id: 24xvr2jqe1cxb
      properties:
        fromValue:
          type: string
        toValue:
          type: string
      required:
        - fromValue
        - toValue
    ImportTemplateResponseSchema:
      title: ImportTemplateResponseSchema
      x-stoplight:
        id: qctw4flq00rth
      type: object
      required:
        - templateUid
        - name
        - description
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
        - layouts
        - entity
        - importFormat
        - fields
      properties:
        templateUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
        description:
          type: string
        createdBy:
          type: string
        createdAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        layouts:
          type: array
          items:
            $ref: '#/components/schemas/ImportLayoutResponseSchema'
        entity:
          $ref: '#/components/schemas/ImportEntityENUM'
        importFormat:
          $ref: '#/components/schemas/ImportFormatENUM'
        fields:
          x-stoplight:
            id: jjpxxpmnykew0
          type: array
          items:
            $ref: '#/components/schemas/ImportFieldDefinitionSchema'
    ImportLayoutResponseSchema:
      title: ImportLayoutResponseSchema
      allOf:
        - type: object
          properties:
            layoutUid:
              $ref: '#/components/schemas/UID'
            createdBy:
              type: string
            createdAt:
              type: string
              format: date-time
            lastModifiedBy:
              type: string
            lastModifiedAt:
              type: string
              format: date-time
            conversions:
              type: array
              items:
                $ref: '#/components/schemas/ImportConversionResponseSchema'
          required:
            - layoutUid
            - conversions
            - createdBy
            - createdAt
            - lastModifiedBy
            - lastModifiedAt
        - $ref: '#/components/schemas/ImportLayoutUpdateRequestSchema'
      x-stoplight:
        id: 5y7364i60wi27
    ImportConversionResponseSchema:
      title: ImportConversionResponseSchema
      allOf:
        - type: object
          properties:
            conversionUid:
              $ref: '#/components/schemas/UID'
            createdAt:
              type: string
              x-stoplight:
                id: synk352jwppkv
              format: date-time
            createdBy:
              type: string
              x-stoplight:
                id: 1foyzzkpw6wso
            lastModifiedAt:
              type: string
              x-stoplight:
                id: 2921bgxszm30c
              format: date-time
            lastModifiedBy:
              type: string
              x-stoplight:
                id: 65wfhgiibm21n
          required:
            - conversionUid
            - createdAt
            - createdBy
            - lastModifiedAt
            - lastModifiedBy
        - $ref: '#/components/schemas/ImportConversionUpdateRequestSchema'
      x-stoplight:
        id: f60gk4z9fgr6s
    ImportFileBasicResponseSchema:
      title: ImportFileBasicResponseSchema
      x-stoplight:
        id: up4dmtg3rk2pt
      type: object
      required:
        - importFileUid
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
        - state
        - filename
        - columnCount
        - rowCount
        - progressCount
        - errorCount
        - ignoredCount
        - estimatedRemainingTime
        - estimatedRemainingTimeText
        - totalTime
        - operation
        - errorMessage
      properties:
        importFileUid:
          $ref: '#/components/schemas/UID'
        createdBy:
          type: string
        createdAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        state:
          $ref: '#/components/schemas/ImportStateENUM'
        filename:
          type: string
        columnCount:
          type: integer
        rowCount:
          type: integer
          description: header row is not counted
        progressCount:
          type: integer
        errorCount:
          type: integer
        ignoredCount:
          type: integer
          description: unprocessed rows
        estimatedRemainingTime:
          type: integer
          description: in hundreths of a second
        estimatedRemainingTimeText:
          type: string
        totalTime:
          type: integer
          description: in hundreths of a second
        operation:
          $ref: '#/components/schemas/ImportOperationENUM'
        errorMessage:
          type: string
    ImportFileResponseSchema:
      title: ImportFileResponseSchema
      x-stoplight:
        id: fin7y8r808djp
      allOf:
        - $ref: '#/components/schemas/ImportFileBasicResponseSchema'
        - type: object
          required:
            - template
          properties:
            template:
              $ref: '#/components/schemas/ImportTemplateResponseSchema'
    ImportFileRequestSchema:
      title: ImportFileRequestSchema
      type: object
      x-stoplight:
        id: pafxfk7yhlz3i
      properties:
        templateUid:
          $ref: '#/components/schemas/UID'
        base64Data:
          type: string
          description: base64 encoded data to be processed
        operation:
          $ref: '#/components/schemas/ImportOperationENUM'
        action:
          $ref: '#/components/schemas/ImportActionENUM'
        importFileUid:
          $ref: '#/components/schemas/UID'
      required:
        - templateUid
        - base64Data
        - operation
        - action
    ImportFileDetailResponseSchema:
      title: ImportFileResponseSchema
      x-stoplight:
        id: mhulckcdaqpjb
      allOf:
        - $ref: '#/components/schemas/ImportFileResponseSchema'
        - type: object
          properties:
            base64Data:
              type: string
              description: |-
                base64 encoded data of response.
                Deprecated: Use the download endpoint instead
              deprecated: true
    ProductVariantResponseSchema:
      title: ProductVariantResponseSchema
      x-stoplight:
        id: jz6mp8re65syu
      allOf:
        - type: object
          properties:
            productVariantUid:
              $ref: '#/components/schemas/UID'
          required:
            - productVariantUid
        - $ref: '#/components/schemas/ProductResponseSchema'
      x-tags:
        - ProductProperties
    ProductAddonResponseSchema:
      title: ProductAddonResponseSchema
      x-stoplight:
        id: es3bmli9cwsul
      allOf:
        - type: object
          required:
            - productLinkType
          properties:
            productLinkType:
              $ref: '#/components/schemas/ProductLinkTypeENUM'
        - $ref: '#/components/schemas/ProductResponseSchema'
      x-tags:
        - Product
    ProductVariantRequestSchema:
      title: ProductVariantRequestSchema
      x-stoplight:
        id: f89wigmspapjx
      type: object
      x-tags:
        - ProductProperties
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        productVariantUid:
          $ref: '#/components/schemas/UID'
      required:
        - productUid
    ProductPropertyResponseSchema:
      title: ProductPropertyResponseSchema
      x-stoplight:
        id: 1xb2hzj0vhurd
      x-tags:
        - ProductProperties
      type: object
      required:
        - productPropertyUid
        - propertyName
        - propertyOptionName
        - propertyType
        - propertyUid
        - propertyOptionUid
        - required
      properties:
        productPropertyUid:
          $ref: '#/components/schemas/UID'
        propertyName:
          type: string
        propertyOptionName:
          type: string
        propertyType:
          $ref: '#/components/schemas/PropertyTypeENUM'
        propertyText:
          type: string
          description: Only in use with TEXT properties.
        propertyUid:
          $ref: '#/components/schemas/UID'
        propertyOptionUid:
          $ref: '#/components/schemas/UID'
        required:
          type: boolean
          x-stoplight:
            id: i24g37sqllljc
    PurchaseReceivementItemResponseSchema:
      title: PurchaseReceivementItemResponseSchema
      x-stoplight:
        id: 7e80wjk25rvvn
      description: PurchaseReceivementItem
      allOf:
        - type: object
          required:
            - receivementUid
            - receivementStatus
          properties:
            receivementUid:
              $ref: '#/components/schemas/UID'
            receivementStatus:
              $ref: '#/components/schemas/ReceivementStatusENUM'
        - $ref: '#/components/schemas/ReceivementItemResponseSchema'
    UID:
      title: UID
      x-stoplight:
        id: hhrn0r2c1oduy
      type: string
      pattern: '^[A-Za-z0-9-_]+'
    DeprecatedUID:
      title: DeprecatedUID
      x-stoplight:
        id: lz8lp6j49fybs
      type: string
      pattern: '^[A-Za-z0-9-_]+'
      deprecated: true
    OptionalUID:
      title: OptionalUID
      x-stoplight:
        id: q6ftwl2ikjfn0
      type: string
      pattern: '^[A-Za-z0-9-_]*'
    OptionalNullableUID:
      title: OptionalUID
      x-stoplight:
        id: 9701rd3ajnvnt
      type: string
      pattern: '^[A-Za-z0-9-_]*'
      nullable: true
    DeprecatedOptionalUID:
      title: DeprecatedOptionalUID
      x-stoplight:
        id: vv3el25fz1p4n
      type: string
      pattern: '^[A-Za-z0-9-_]*'
      deprecated: true
    ServiceTypeCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceTypeUpdateRequestSchema'
        - properties:
            serviceTypeUid:
              $ref: '#/components/schemas/UID'
      title: ServiceTypeCreateRequestSchema
      type: object
    ServiceTypeUpdateRequestSchema:
      title: ServiceTypeUpdateRequestSchema
      x-stoplight:
        id: mzhgo6rgjkgme
      type: object
      properties:
        name:
          type: string
        serviceStatuses:
          x-stoplight:
            id: 7yeq0j9vu1mfe
          type: array
          items:
            $ref: '#/components/schemas/ServiceTypeStatusSchema'
        deprecated:
          type: boolean
      required:
        - name
        - serviceStatuses
    ServiceStatusCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceStatusUpdateRequestSchema'
        - properties:
            serviceStatusUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: ServiceStatusCreateRequestSchema
    ServiceStatusUpdateRequestSchema:
      title: ServiceStatusUpdateRequestSchema
      x-stoplight:
        id: cndhakmkzsso5
      type: object
      properties:
        name:
          type: string
        state:
          $ref: '#/components/schemas/ServiceStateENUM'
        deprecated:
          type: boolean
      required:
        - name
        - state
    ServiceHoursCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceHoursUpdateRequestSchema'
        - required:
            - hourlyRateUid
            - serviceDate
            - usedMinutes
          properties:
            serviceHoursUid:
              $ref: '#/components/schemas/UID'
            hourlyRateUid:
              $ref: '#/components/schemas/UID'
            serviceDate:
              type: string
              x-stoplight:
                id: iq1igv4az7g6a
              format: date-time
            usedMinutes:
              type: integer
              x-stoplight:
                id: 1syz3yuc40r2m
      title: ServiceHoursCreateRequestSchema
      type: object
    ServiceHoursUpdateRequestSchema:
      title: ServiceHoursUpdateRequestSchema
      x-stoplight:
        id: ek5rice03w9oy
      type: object
      properties:
        serviceDate:
          type: string
          format: date-time
        usedMinutes:
          type: integer
        note:
          type: string
        billedMinutes:
          type: integer
        hourlyRateUid:
          $ref: '#/components/schemas/OptionalUID'
    ServiceEventCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceEventUpdateRequestSchema'
        - properties:
            serviceEventUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: ServiceEventCreateRequestSchema
    ServiceEventUpdateRequestSchema:
      title: ServiceEventUpdateRequestSchema
      x-stoplight:
        id: tsdt2zzuzar5f
      type: object
      required:
        - serviceStatusUid
        - visibility
      properties:
        note:
          type: string
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        visibility:
          $ref: '#/components/schemas/VisibilityENUM'
        notifications:
          type: array
          x-stoplight:
            id: dp7ea2eev0wcv
          items:
            $ref: '#/components/schemas/MessageTypeENUM'
    ServiceOrderItemCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceOrderItemUpdateRequestSchema'
        - required:
            - productUid
          properties:
            productUid:
              $ref: '#/components/schemas/UID'
            serviceOrderItemUid:
              $ref: '#/components/schemas/UID'
            warehouseUid:
              $ref: '#/components/schemas/OptionalUID'
      title: ServiceOrderItemCreateRequestSchema
      type: object
    ServiceOrderItemUpdateRequestSchema:
      title: ServiceOrderItemUpdateRequestSchema
      x-stoplight:
        id: 734phcet4j5o8
      type: object
      required:
        - quantity
      properties:
        price:
          type: integer
        quantity:
          type: integer
        serialNumber:
          type: string
        note:
          type: string
    ServiceOrderCreateRequestSchema:
      allOf:
        - $ref: '#/components/schemas/ServiceOrderUpdateRequestSchema'
        - properties:
            serviceOrderUid:
              $ref: '#/components/schemas/UID'
      type: object
      title: ServiceOrderCreateRequestSchema
    ServiceOrderUpdateRequestSchema:
      title: ServiceOrderUpdateRequestSchema
      x-stoplight:
        id: vk7f6d0s2h6cv
      type: object
      required:
        - customerUid
        - serviceTypeUid
        - title
        - description
        - priority
      properties:
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        serviceTypeUid:
          $ref: '#/components/schemas/UID'
        orderProductLineUid:
          $ref: '#/components/schemas/OptionalUID'
        title:
          type: string
        description:
          type: string
        locationLabel:
          type: string
          x-stoplight:
            id: z22cpjlqv5um7
        priority:
          $ref: '#/components/schemas/PriorityENUM'
        requiresPriceEstimate:
          type: boolean
        estimatedPrice:
          type: integer
        maxPrice:
          type: integer
          x-stoplight:
            id: eobpfwgz2y08e
        readyAtEstimate:
          type: string
          format: date-time
        readyAtNeeded:
          type: string
          format: date-time
        assignedUserUid:
          $ref: '#/components/schemas/OptionalUID'
        warranty:
          type: boolean
          x-stoplight:
            id: y4m0wtmase7pk
        rmaOrderItemUid:
          $ref: '#/components/schemas/OptionalNullableUID'
    DeviceSystemInformationUpdateRequestSchema:
      title: DeviceSystemInformationUpdateRequestSchema
      x-stoplight:
        id: ul9pxmobw0a2f
      type: object
      properties:
        systemInformation:
          type: string
          description: 'Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers'
      required:
        - systemInformation
    DeviceRegisterRequestSchema:
      title: DeviceRegisterRequestSchema
      x-stoplight:
        id: id5qfwu4em89r
      type: object
      properties:
        clientId:
          type: string
        name:
          type: string
          nullable: true
        systemInformation:
          type: string
          description: 'Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers'
          nullable: true
      required:
        - clientId
    DeviceLinkRequestSchema:
      title: DeviceLinkRequestSchema
      x-stoplight:
        id: t97t19ze0f2qj
      type: object
      required:
        - appId
        - userCode
        - password
      properties:
        appId:
          type: string
          description: This is a predefined app id that Flow will provide
          x-stoplight:
            id: 3ce556y3py56b
        userCode:
          type: string
          x-stoplight:
            id: l0ecthc20q79i
          description: A user code from the tenant
        password:
          type: string
          x-stoplight:
            id: gqrhzwrswnxq9
          description: The password for the user
        systemInformation:
          type: string
          description: 'Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers'
    XZReportPDFRequestSchema:
      title: XZReportPDFRequestSchema
      x-stoplight:
        id: nvywmlf44r876
      properties:
        date:
          format: date
          type: string
      required:
        - date
      type: object
    CashControlReportPDFRequestSchema:
      title: CashControlReportPDFRequestSchema
      x-stoplight:
        id: c5d4c68f3cf99
      properties:
        date:
          format: date
          type: string
      required:
        - date
      type: object
    SAFTReportCreateRequestSchema:
      title: SAFTReportCreateRequestSchema
      x-stoplight:
        id: btsag1dedub5w
      type: object
      properties:
        fromDate:
          format: date
          type: string
        toDate:
          format: date
          type: string
        storeUids:
          type: array
          x-stoplight:
            id: xnc33uztutko9
          items:
            $ref: '#/components/schemas/UID'
        reportUid:
          $ref: '#/components/schemas/UID'
      required:
        - fromDate
        - toDate
    GeneralReportCreateRequestSchema:
      title: GeneralReportCreateRequestSchema
      x-stoplight:
        id: chorexz8i4sh3
      type: object
      properties:
        fromDate:
          format: date
          type: string
        toDate:
          format: date
          type: string
        storeUids:
          type: array
          x-stoplight:
            id: c4ibahp9lp7ic
          items:
            $ref: '#/components/schemas/UID'
        reportUid:
          $ref: '#/components/schemas/UID'
      required:
        - fromDate
        - toDate
    WarehouseStockDetailsReportCreateRequestSchema:
      title: WarehouseStockDetailsReportCreateRequestSchema
      x-stoplight:
        id: nxuaptqbi3qtu
      type: object
      properties:
        warehouseUid:
          $ref: '#/components/schemas/UID'
        warehouseUids:
          x-stoplight:
            id: fbv7mhofoxuz1
          type: array
          items:
            $ref: '#/components/schemas/UID'
        brandUids:
          type: array
          x-stoplight:
            id: 2n9dgbmicejf5
          items:
            $ref: '#/components/schemas/UID'
        productGroupUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        reportUid:
          $ref: '#/components/schemas/UID'
    ReportAbortRequestSchema:
      title: ReportAbortRequestSchema
      x-stoplight:
        id: 8nm4w5ppasrwf
      type: object
      properties:
        action:
          $ref: '#/components/schemas/ReportActionENUM'
      required:
        - action
    TurnoverRequestSchema:
      title: TurnoverRequestSchema
      x-stoplight:
        id: a2xmnnyvaszdp
      type: object
      description: Turnover Request Body
      required:
        - fromDateTime
        - toDateTime
      properties:
        fromDateTime:
          format: date-time
          minLength: 20
          type: string
        toDateTime:
          format: date-time
          minLength: 20
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        storeUids:
          type: array
          x-stoplight:
            id: 3ytsxs1v0o9hc
          items:
            $ref: '#/components/schemas/UID'
    TenantUserTurnoverRequestSchema:
      title: TenantUserTurnoverRequestSchema
      x-stoplight:
        id: ac9jty9hnfa9d
      type: object
      description: Turnover Request Body
      properties:
        fromDateTime:
          format: date-time
          minLength: 20
          type: string
        toDateTime:
          format: date-time
          minLength: 20
          type: string
      required:
        - fromDateTime
        - toDateTime
    TillStatusRequestSchema:
      title: TillStatusRequestSchema
      x-stoplight:
        id: uwoiio4btl6ow
      type: object
      properties:
        bankdepositAmount:
          description: The amount that should be withdrawed from the till and deposited to night safe when the till is closed.
          type: integer
        bankdepositReference:
          description: An optional reference to the bank deposit
          type: string
        cashAmount:
          description: |-
            When the till is opened this is the change amount.
            When the till is closed this is the counted amount
          type: integer
        status:
          $ref: '#/components/schemas/TillStatusENUM'
        cashDetails:
          type: array
          items:
            $ref: '#/components/schemas/CashDetailSchema'
      required:
        - status
    TenantUserUpdateRequestSchema:
      title: TenantUserUpdateRequestSchema
      x-stoplight:
        id: o7f877nknfv10
      type: object
      properties:
        accountType:
          $ref: '#/components/schemas/TenantAccountTypeENUM'
        defaultStoreUid:
          $ref: '#/components/schemas/UID'
        displayName:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        mobile:
          type: string
        password:
          type: string
        storeAccess:
          type: array
          items:
            $ref: '#/components/schemas/UserStoreAccessCreateSchema'
        tenantRole:
          $ref: '#/components/schemas/TenantRoleENUM'
        userCode:
          type: string
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
    TenantUserCreateRequestSchema:
      title: TenantUserCreateRequestSchema
      x-stoplight:
        id: enqjuqldyzwp0
      type: object
      description: Email is required when accountType is FULL
      required:
        - accountType
        - password
        - tenantRole
        - userCode
      properties:
        accountType:
          $ref: '#/components/schemas/TenantAccountTypeENUM'
        displayName:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        mobile:
          type: string
        password:
          type: string
        tenantRole:
          $ref: '#/components/schemas/TenantRoleENUM'
        userCode:
          type: string
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        languageCode:
          $ref: '#/components/schemas/LanguageCode'
        storeAccess:
          x-stoplight:
            id: uajc3h6zis67c
          type: array
          items:
            $ref: '#/components/schemas/UserStoreAccessCreateSchema'
        defaultStoreUid:
          $ref: '#/components/schemas/OptionalUID'
    StocktakingItemListCreateRequestSchema:
      title: StocktakingItemListCreateRequestSchema
      x-stoplight:
        id: clhgf7o7713a6
      type: object
      properties:
        productUids:
          description: List of productUids to be added to a stocktaking
          items:
            $ref: '#/components/schemas/UID'
          type: array
      required:
        - productUids
    OrderDeliveryUpdateRequestSchema:
      title: OrderDeliveryUpdateRequestSchema
      x-stoplight:
        id: jyybky1ksaetl
      type: object
      properties:
        signature:
          description: base64 encoded png formatted binary data
          type: string
        deliveryCustomerAddressUid:
          $ref: '#/components/schemas/DeprecatedUID'
        deliveryAddress:
          $ref: '#/components/schemas/DeprecatedDeliveryAddressRequestSchema'
        deliveryState:
          $ref: '#/components/schemas/DeliveryStateENUM'
        deliveryDate:
          x-stoplight:
            id: umlyzfodpp5cp
          type: string
          format: date
          nullable: true
        externalDeliveryReference:
          x-stoplight:
            id: 2erd2xeknvd6z
          type: string
        note:
          x-stoplight:
            id: e0febdrpldnwt
          type: string
        trackingNumber:
          deprecated: true
          x-stoplight:
            id: l0m3v42nf2nif
          type: string
        warehouseUid:
          $ref: '#/components/schemas/DeprecatedOptionalUID'
        timeslot:
          $ref: '#/components/schemas/DeprecatedOrderDeliveryTimeslotRequestSchema'
        shipping:
          $ref: '#/components/schemas/OrderDeliveryShippingRequestSchema'
    ReceivementUpdateRequestSchema:
      title: ReceivementUpdateRequestSchema
      x-stoplight:
        id: jllc3xoppcqpn
      type: object
      properties:
        externalId:
          description: External reference to receivement
          type: string
        packingList:
          type: string
        status:
          $ref: '#/components/schemas/ReceivementStatusENUM'
        expectedArrival:
          type: string
          x-stoplight:
            id: kyq733j76nrjo
          format: date-time
        expectedDispatch:
          type: string
          x-stoplight:
            id: m2by5lotjd7j5
          format: date-time
        supplierOrderReference:
          type: string
          x-stoplight:
            id: 1fctz6244nzn8
    ReceivementCreateRequestSchema:
      title: ReceivementCreateRequestSchema
      x-stoplight:
        id: 1rbuoioe0qv5s
      type: object
      required:
        - purchaseOrderUid
        - status
        - warehouseUid
      properties:
        receivementUid:
          $ref: '#/components/schemas/UID'
        externalId:
          description: External reference to receivement
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/ReceivementItemCreateRequestSchema'
        packingList:
          type: string
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        status:
          $ref: '#/components/schemas/ReceivementStatusENUM'
        warehouseUid:
          $ref: '#/components/schemas/UID'
        expectedArrival:
          type: string
          x-stoplight:
            id: 8css7dzb76g6i
          format: date-time
        expectedDispatch:
          type: string
          x-stoplight:
            id: svb1pi11r81af
          format: date-time
        supplierOrderReference:
          type: string
          x-stoplight:
            id: htn8tysdcoufp
    ProductReportRequestSchema:
      title: ProductReportRequestSchema
      x-stoplight:
        id: s2dmrug1glf3s
      type: object
      required:
        - fromDateTime
        - storeUids
        - toDateTime
      properties:
        brandUids:
          description: Array of brandUids
          type: array
          items:
            $ref: '#/components/schemas/UID'
        fromDateTime:
          format: date-time
          minLength: 10
          type: string
        productGroupUids:
          description: Array of productGroup ids
          type: array
          items:
            $ref: '#/components/schemas/UID'
        storeUids:
          description: Array of storeUids
          type: array
          items:
            $ref: '#/components/schemas/UID'
        toDateTime:
          format: date-time
          minLength: 10
          type: string
        groupByUserCode:
          type: boolean
          x-stoplight:
            id: 3cy8mbg76b9np
          description: 'if true, the excel report returns a response with order items grouped by userCode'
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
    EmailNotificationRequestSchema:
      title: EmailNotificationRequestSchema
      x-stoplight:
        id: 59dnhbjcdebbt
      type: object
      required:
        - recepients
      properties:
        recepients:
          x-stoplight:
            id: 0u9a34dyxw4iv
          type: array
          items:
            $ref: '#/components/schemas/EmailTYPE'
        subject:
          type: string
          x-stoplight:
            id: yp1njimla5u6j
        body:
          type: string
          x-stoplight:
            id: 6na7s07g1nxxj
        includePDF:
          type: boolean
          x-stoplight:
            id: khrury0f78zz0
          default: true
        attachments:
          type: array
          x-stoplight:
            id: mfxgsqxuc965e
          items:
            $ref: '#/components/schemas/Base64EncodedFileContentSchema'
    PurchaseOrderEmailNotificationRequestSchema:
      title: PurchaseOrderEmailNotificationRequestSchema
      x-stoplight:
        id: 15j9hoama4ix0
      type: object
      required:
        - email
      properties:
        email:
          $ref: '#/components/schemas/EmailTYPE'
        recepients:
          x-stoplight:
            id: g4g9xy8s57riw
          type: array
          items:
            $ref: '#/components/schemas/EmailTYPE'
        subject:
          type: string
          x-stoplight:
            id: sjeu858cgth3i
        body:
          type: string
          x-stoplight:
            id: vdpbx04xtiedd
        includePDF:
          type: boolean
          x-stoplight:
            id: wh2nzqvewox7r
          default: true
        attachments:
          type: array
          x-stoplight:
            id: xm06ravwk258i
          items:
            $ref: '#/components/schemas/Base64EncodedFileContentSchema'
    MoveStockRequestSchema:
      title: MoveStockRequestSchema
      x-stoplight:
        id: enxnya0mzo5lx
      type: object
      properties:
        quantity:
          type: integer
        serialnumbers:
          items:
            type: string
          type: array
        warehouseUid:
          $ref: '#/components/schemas/UID'
      required:
        - quantity
        - warehouseUid
    CategoryUpdateRequestSchema:
      title: CategoryUpdateRequestSchema
      x-stoplight:
        id: b85hrtfnp8mr4
      type: object
      properties:
        externalId:
          type: string
        name:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        productUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
      required:
        - name
    CategoryCreateRequestSchema:
      title: CategoryCreateRequestSchema
      x-stoplight:
        id: gi6mmdl8stnd5
      type: object
      properties:
        externalId:
          type: string
        name:
          type: string
        parentUid:
          $ref: '#/components/schemas/OptionalUID'
        categoryUid:
          $ref: '#/components/schemas/UID'
      required:
        - name
    CashReportWithdrawalRequestSchema:
      title: CashReportWithdrawalRequestSchema
      x-stoplight:
        id: gkfakjh9sn9al
      type: object
      properties:
        amount:
          type: integer
        comment:
          type: string
      required:
        - amount
        - comment
    CashReportUpdateRequestSchema:
      title: CashReportUpdateRequestSchema
      x-stoplight:
        id: yvmzmp3wwoo04
      type: object
      properties:
        comment:
          type: string
        bankDepositAmount:
          type: integer
          x-stoplight:
            id: 8tyrd9iv5mish
        bankDepositReference:
          type: string
          x-stoplight:
            id: vkeuqd2cl9c4r
        cashAmount:
          type: integer
          x-stoplight:
            id: aioedc536047z
          description: 'When till is opened this is the change amount, when closed this is the counted amount.'
        status:
          $ref: '#/components/schemas/TillStatusENUM'
        cashDetails:
          type: array
          x-stoplight:
            id: b35wa3abs77ig
          items:
            $ref: '#/components/schemas/CashDetailSchema'
    BatchAdjustStockRequestSchema:
      title: BatchAdjustStockRequestSchema
      x-stoplight:
        id: 7yrps3gyyjxvp
      type: object
      properties:
        upsert:
          items:
            $ref: '#/components/schemas/BatchAdjustStockSchema'
          maxItems: 1000
          type: array
      required:
        - upsert
    BatchAdjustStockResponseSchema:
      title: BatchAdjustStockResponseSchema
      x-stoplight:
        id: ypflecd1xlfsz
      type: object
      properties:
        upsert:
          items:
            $ref: '#/components/schemas/BatchResponseItemProductSchema'
          maxItems: 1000
          type: array
      required:
        - upsert
    AdjustStockRequestSchema:
      title: AdjustStockRequestSchema
      x-stoplight:
        id: b1w8d4o57u3jy
      type: object
      required:
        - reason
      properties:
        averageCost:
          description: set new average cost
          type: integer
        quantity:
          description: set new stock quantity
          type: integer
        changeQuantity:
          description: make stock adjustment
          type: integer
          x-stoplight:
            id: qkzxhdmtv95cu
        reason:
          type: string
        serialnumbers:
          description: |
            Array of strings to identify serial numbers for the quantity in stock. Length of array must match the quantity value.
            This field is required when product has serialNoRequired = "ON_RECEIVE"
          type: array
          items:
            type: string
    AccountingRequestSchema:
      title: AccountingRequestSchema
      x-stoplight:
        id: 0uhmpqg62w1z1
      type: object
      properties:
        fromDate:
          format: date
          minLength: 10
          type: string
        toDate:
          format: date
          minLength: 10
          type: string
        organizationUid:
          $ref: '#/components/schemas/OptionalUID'
        storeUids:
          type: array
          x-stoplight:
            id: 8gb14mea25m28
          description: List of storeUids to include in report.
          items:
            $ref: '#/components/schemas/UID'
      required:
        - fromDate
        - toDate
        - organizationUid
    AccountLoginRequestSchema:
      title: AccountLoginRequestSchema
      x-stoplight:
        id: hbb43jkouft1u
      type: object
      properties:
        password:
          type: string
        userCode:
          type: string
      required:
        - userCode
        - password
    DeviceAuthorizeRequestSchema:
      title: DeviceAuthorizeRequestSchema
      x-stoplight:
        id: pcw6clfj6mv0s
      type: object
      properties:
        deviceCode:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        tenantUid:
          $ref: '#/components/schemas/UID'
        tillUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
      required:
        - deviceCode
        - storeUid
        - tenantUid
    DeprecatedDeviceTokenRequestSchema:
      title: DeprecatedDeviceTokenRequestSchema
      x-stoplight:
        id: 5839wiafnzaa7
      type: object
      properties:
        clientId:
          type: string
        deviceIdentifier:
          type: string
      required:
        - clientId
        - deviceIdentifier
    OrderDeliveryCreateRequestSchema:
      title: OrderDeliveryCreateRequestSchema
      x-stoplight:
        id: gao7pisd4axqn
      type: object
      properties:
        deliveryCustomerAddressUid:
          $ref: '#/components/schemas/DeprecatedUID'
        deliveryAddress:
          $ref: '#/components/schemas/DeprecatedDeliveryAddressRequestSchema'
        deliveryState:
          $ref: '#/components/schemas/DeliveryStateENUM'
        deliveryDate:
          x-stoplight:
            id: cxotq6bmpacmr
          type: string
          format: date
          nullable: true
        externalDeliveryReference:
          x-stoplight:
            id: p01ix6dyvfy3v
          type: string
        note:
          x-stoplight:
            id: iye8511k6fpjv
          type: string
        trackingNumber:
          deprecated: true
          x-stoplight:
            id: 8ake8a4bybuqk
          type: string
        warehouseUid:
          $ref: '#/components/schemas/DeprecatedUID'
        deliveryUid:
          $ref: '#/components/schemas/UID'
        autoPrint:
          type: boolean
          x-stoplight:
            id: 663e48v4uaw0m
          description: Used for Profrakt consignment auto print
        timeslot:
          $ref: '#/components/schemas/DeprecatedOrderDeliveryTimeslotRequestSchema'
        shipping:
          $ref: '#/components/schemas/OrderDeliveryShippingRequestSchema'
    DeviceCreateRequestSchema:
      title: DeviceCreateRequestSchema
      x-stoplight:
        id: 9hx8wv0kptdwa
      type: object
      required:
        - name
        - appCode
      properties:
        deviceUid:
          $ref: '#/components/schemas/OptionalUID'
        name:
          type: string
          x-stoplight:
            id: uuoqtpecxlcf8
        appCode:
          $ref: '#/components/schemas/DeviceAppCodeENUM'
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        tillUid:
          $ref: '#/components/schemas/OptionalUID'
        settings:
          x-stoplight:
            id: ncpkqyl4eo5wm
          type: array
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
        printerUids:
          type: array
          x-stoplight:
            id: old846k2gxo13
          items:
            $ref: '#/components/schemas/UID'
    DeviceUpdateRequestSchema:
      title: DeviceUpdateRequestSchema
      x-stoplight:
        id: n2npunnev3gpe
      type: object
      properties:
        name:
          type: string
        appCode:
          $ref: '#/components/schemas/DeviceAppCodeENUM'
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        status:
          $ref: '#/components/schemas/DeviceStatusENUM'
        tillUid:
          $ref: '#/components/schemas/OptionalUID'
        settings:
          type: array
          x-stoplight:
            id: lom2yexmud8yu
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
        printerUids:
          type: array
          x-stoplight:
            id: tuw9yw82wzspe
          items:
            $ref: '#/components/schemas/UID'
    DeliverySearchRequestSchema:
      title: DeliverySearchRequestSchema
      type: object
      required:
        - storeUids
      properties:
        fromDateTime:
          type: string
          x-stoplight:
            id: p4102lr18ld3g
          format: date-time
          nullable: true
        toDateTime:
          type: string
          x-stoplight:
            id: ykji4cepnu8h8
          format: date-time
          nullable: true
        deliveryStates:
          x-stoplight:
            id: tpt82b4jnwy7x
          type: array
          items:
            $ref: '#/components/schemas/DeliveryStateENUM'
        storeUids:
          type: array
          x-stoplight:
            id: 4i18fkrdkq7x8
          items:
            $ref: '#/components/schemas/UID'
        query:
          type: string
          x-stoplight:
            id: kdt7xnkeb5t4c
        deliveryProviders:
          x-stoplight:
            id: bxf7e0396i9kl
          type: array
          items:
            $ref: '#/components/schemas/DeliveryProviderSearchSchema'
        orderSettleStates:
          type: array
          x-stoplight:
            id: 8rzp5thc9t0xq
          items:
            $ref: '#/components/schemas/OrderSettleStateENUM'
        orderOrderStates:
          type: array
          x-stoplight:
            id: 3rmguw5z13j3j
          items:
            $ref: '#/components/schemas/OrderOrderStateENUM'
    OrderImportItemCreateSchema:
      title: OrderImportItemCreateSchema
      x-tags:
        - Order
      allOf:
        - $ref: '#/components/schemas/OrderItemCreateSchema'
        - type: object
          required:
            - itemPrice
            - quantityOrdered
    OrderImportOrderDeliveryCreateRequestSchema:
      title: OrderImportOrderDeliveryCreateRequestSchema
      x-stoplight:
        id: esocraml0am6q
      type: object
      properties:
        deliveryAddress:
          $ref: '#/components/schemas/DeliveryAddressRequestSchema'
        deliveryState:
          $ref: '#/components/schemas/DeliveryStateENUM'
        deliveryDate:
          type: string
          format: date-time
        externalDeliveryReference:
          type: string
        trackingNumber:
          deprecated: true
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/DeprecatedUID'
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/DeprecatedUID'
        signature:
          type: string
          x-stoplight:
            id: vt594fqe25wve
        warehouseUid:
          $ref: '#/components/schemas/UID'
        deliveryUid:
          $ref: '#/components/schemas/UID'
        shipping:
          $ref: '#/components/schemas/OrderDeliveryShippingRequestSchema'
      required:
        - warehouseUid
        - deliveryUid
    FlowboxTokenCreateSchema:
      title: FlowboxTokenCreateSchema
      x-stoplight:
        id: 7epqtpv7wy1de
      type: object
      properties:
        deviceIdentifier:
          type: string
      required:
        - deviceIdentifier
    GeneralNotificationRequestSchema:
      title: GeneralNotificationRequestSchema
      x-stoplight:
        id: j2vv7tkwxwbq9
      type: object
      required:
        - messageType
        - recipient
      properties:
        messageType:
          $ref: '#/components/schemas/MessageTypeENUM'
        recipient:
          type: string
          x-stoplight:
            id: d56somcv2ywrz
          description: |-
            The recipient must be a valid phone number 
            if the messageType is `SMS`, 
            and a valid email if the messageType is `EMAIL`
        subject:
          type: string
          x-stoplight:
            id: n74y05x3dcgms
          description: This is only valid for messageType `EMAIL`
        message:
          type: string
          x-stoplight:
            id: 2j6zv83dkbehr
          description: The message that should be sent to the recipient
        templateType:
          type: string
          x-stoplight:
            id: m1a2n5mmzo7zd
          description: This must be a valid template type from the `/metadata/templates` endpoint
        templateData:
          type: array
          x-stoplight:
            id: zr018j9elrmex
          description: |-
            Optional overrides for template variables. Use the `name` values from `/metadata/templates`
             (e.g. `OrderNumber`). 
             Server-filled values from `orderUid`, `customerUid`, etc. apply when a variable is still empty after merging.
          items:
            x-stoplight:
              id: oem5mjh7us0fr
            type: object
            properties:
              key:
                type: string
                x-stoplight:
                  id: fipkc0yf2liwu
              value:
                type: string
                x-stoplight:
                  id: wi1z2085qauy7
        notificationUid:
          $ref: '#/components/schemas/UID'
        customerUid:
          $ref: '#/components/schemas/UID'
        orderUid:
          $ref: '#/components/schemas/UID'
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        receivementUid:
          $ref: '#/components/schemas/UID'
    NotificationResponseSchema:
      title: NotificationResponseSchema
      x-stoplight:
        id: 8yc4pqupakg1i
      type: object
      required:
        - messageType
        - recipient
        - message
        - subject
        - state
        - errorText
        - notificationUid
        - customerUid
        - orderUid
        - serviceOrderUid
        - serviceEventUid
        - tenantUserUid
        - supplierUid
        - receivementUid
        - purchaseOrderUid
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
      properties:
        messageType:
          $ref: '#/components/schemas/MessageTypeENUM'
        recipient:
          type: string
          x-stoplight:
            id: d2o9mimu4193q
        message:
          type: string
          x-stoplight:
            id: zm1zdv8ttd15c
        subject:
          type: string
          x-stoplight:
            id: q3hlfja5ghzv8
        state:
          $ref: '#/components/schemas/NotificationStateENUM'
        errorText:
          x-stoplight:
            id: 1qahlmvmvi9xx
          type: string
        notificationUid:
          $ref: '#/components/schemas/UID'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        orderUid:
          $ref: '#/components/schemas/OptionalUID'
        serviceOrderUid:
          $ref: '#/components/schemas/OptionalUID'
        serviceEventUid:
          $ref: '#/components/schemas/OptionalUID'
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
        supplierUid:
          $ref: '#/components/schemas/OptionalUID'
        receivementUid:
          $ref: '#/components/schemas/OptionalUID'
        purchaseOrderUid:
          $ref: '#/components/schemas/OptionalUID'
        createdBy:
          type: string
          x-stoplight:
            id: 9c4i36gymtolf
        createdAt:
          type: string
          x-stoplight:
            id: phs79mu2ljhgj
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: ukb0fuenxoxqn
        lastModifiedAt:
          type: string
          x-stoplight:
            id: al6bqichsfjzg
          format: date-time
    NotificationSearchSchema:
      title: NotificationSearchSchema
      type: object
      properties:
        messageType:
          $ref: '#/components/schemas/MessageTypeENUM'
        recipient:
          type: string
        message:
          type: string
        state:
          $ref: '#/components/schemas/NotificationStateENUM'
        errorText:
          x-stoplight:
            id: tevctwb76tasn
          type: string
        organizationUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        customerUid:
          $ref: '#/components/schemas/UID'
        orderUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        supplierUid:
          $ref: '#/components/schemas/UID'
        receivementUid:
          $ref: '#/components/schemas/UID'
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        fromDateTime:
          type: string
          format: date-time
        toDateTime:
          type: string
          format: date-time
        query:
          type: string
          x-stoplight:
            id: 7k1nlth6b7asr
          description: Generic search. Searches both in messages an in recipient
    NotificationStateENUM:
      title: NotificationStateENUM
      x-stoplight:
        id: z3nrrr1t44m91
      type: string
      enum:
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
        - FAILED
    LinkmobilityCallbackRequestSchema:
      title: LinkmobilityCallbackRequestSchema
      x-stoplight:
        id: gf5fypcyfw8y8
      type: object
      properties:
        refId:
          type: string
          x-stoplight:
            id: 9jjnxboiw257n
          nullable: true
        id:
          type: string
          x-stoplight:
            id: mkdroa3t81hfy
          nullable: true
        operator:
          type: string
          x-stoplight:
            id: k7fz8iyw5zgad
          nullable: true
        sentTimestamp:
          type: string
          x-stoplight:
            id: soinj1dszqv43
          format: date-time
          nullable: true
        timestamp:
          type: string
          x-stoplight:
            id: vztkxq4hbiqc1
          format: date-time
          nullable: true
        resultCode:
          type: integer
          x-stoplight:
            id: y41a7rriq563j
          nullable: true
        operatorResultCode:
          type: string
          x-stoplight:
            id: yuifsxqvmu74g
          nullable: true
        segments:
          type: integer
          x-stoplight:
            id: xjkbabtu8psos
          nullable: true
        gateCustomParameters:
          type: object
          x-stoplight:
            id: 6h87hyrdccxfs
          nullable: true
        customParameters:
          type: object
          x-stoplight:
            id: dh5ufellzem7p
          nullable: true
    AvailableExtensionSchema:
      title: AvailableExtensionSchema
      x-stoplight:
        id: 4j6ws6yyvzro6
      type: object
      required:
        - extensionCode
        - name
      properties:
        extensionCode:
          $ref: '#/components/schemas/ExtensionCodeENUM'
        name:
          type: string
          x-stoplight:
            id: w6uievc2r06vc
    TenantExtensionSchema:
      title: TenantExtensionSchema
      x-stoplight:
        id: b38fgaa9m68xi
      type: object
      required:
        - extensionCode
        - name
        - active
        - tenantExtensionUid
      properties:
        extensionCode:
          $ref: '#/components/schemas/ExtensionCodeENUM'
        name:
          type: string
          x-stoplight:
            id: rtw41ebhqpmws
        active:
          type: boolean
          x-stoplight:
            id: z7ozmcnd0xn5e
        tenantExtensionUid:
          $ref: '#/components/schemas/UID'
    ImportFileDataResponseSchema:
      title: ImportFileDataResponseSchema
      x-stoplight:
        id: zqict0k9chcw8
      type: object
      properties:
        templateUid:
          $ref: '#/components/schemas/UID'
        base64Data:
          type: string
          x-stoplight:
            id: gdob9i43nqys4
        contentType:
          type: string
          x-stoplight:
            id: u9754r2zm827j
        action:
          $ref: '#/components/schemas/ImportActionENUM'
        importFileUid:
          $ref: '#/components/schemas/OptionalUID'
        operation:
          $ref: '#/components/schemas/ImportOperationENUM'
        state:
          $ref: '#/components/schemas/ImportStateENUM'
      required:
        - templateUid
        - base64Data
        - contentType
        - action
        - importFileUid
        - operation
        - state
    ImportFileJobRequestSchema:
      title: ImportFileJobRequestSchema
      x-stoplight:
        id: 2vfagjrx8mqgm
      type: object
      properties:
        action:
          $ref: '#/components/schemas/ImportFileJobActionENUM'
    ImportFileJobActionENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | EXECUTE | Execute Import job |
        | ABORT | Abort running job |
      title: ImportFileJobActionENUM
      x-stoplight:
        id: hnmrow7g9dgub
      type: string
      enum:
        - EXECUTE
        - ABORT
    ProductRequirementRequestSchema:
      title: ProductRequirementRequestSchema
      x-stoplight:
        id: mzdwu2mjq7qk6
      type: object
      description: ProductRequirementRequestSchema
      properties:
        requireCustomer:
          type: boolean
          x-stoplight:
            id: s860rndsv0hzz
        requireCustomerMobile:
          type: boolean
          x-stoplight:
            id: g1x7tmycxilz7
        requireCustomerEmail:
          type: boolean
          x-stoplight:
            id: p7gip3pdxma33
        requireCustomerDeliveryAddress:
          type: boolean
          x-stoplight:
            id: o8iy9qb4qcetl
        orderItemReference:
          type: string
          x-stoplight:
            id: tbxai0xi5kh6i
          description: |-
            Valid values are `phone`, `email`, `not_empty` or a regular expression.
            To indicate that no order item reference is required, send a blank value.
    ProductRequirementResponseSchema:
      title: ProductRequirementResponseSchema
      x-stoplight:
        id: gnah7wtt1fo4l
      type: object
      description: ProductRequirementResponseSchema
      required:
        - requireCustomer
        - requireCustomerMobile
        - requireCustomerEmail
        - requireCustomerDeliveryAddress
        - orderItemReference
      properties:
        requireCustomer:
          type: boolean
        requireCustomerMobile:
          type: boolean
        requireCustomerEmail:
          type: boolean
        requireCustomerDeliveryAddress:
          type: boolean
        orderItemReference:
          type: string
          x-stoplight:
            id: verrznv9asist
          description: 'If this field has any value, the order line must include a property with the key `ORDERITEM_REFERENCE`. The allowed values for this field are `phone`, `email`, `not_empty`, or a regular expression.'
    PaymentMethodRequirementResponseSchema:
      title: PaymentMethodRequirementResponseSchema
      x-stoplight:
        id: hplvwmqt5v47a
      type: object
      description: PaymentMethodRequirementResponseSchema
      required:
        - requireCustomer
        - requireCustomerMobile
        - requireCustomerEmail
        - requireCustomerType
        - requireCustomerContact
        - requireExclusiveUse
        - requireRefundToSameMethod
      properties:
        requireCustomer:
          type: boolean
        requireCustomerMobile:
          type: boolean
        requireCustomerEmail:
          type: boolean
        requireCustomerType:
          $ref: '#/components/schemas/PaymentMethodCustomerTypeENUM'
        requireCustomerContact:
          type: boolean
        requireExclusiveUse:
          type: boolean
          x-stoplight:
            id: zn6s8kx96xpdt
        requireRefundToSameMethod:
          type: boolean
          x-stoplight:
            id: xr0jvpimsh7qn
    PaymentTerminal:
      title: PaymentTerminal
      type: object
      required:
        - id
      properties:
        id:
          type: string
    StoreSearchStockRequestSchema:
      title: StoreSearchStockRequestSchema
      x-stoplight:
        id: xv0nf3basn2ut
      type: object
      properties:
        modifiedAfter:
          type: string
          x-stoplight:
            id: 3e3tli8pd7au2
          format: date-time
        warehouseUids:
          type: array
          x-stoplight:
            id: pdjs3c0j1hgcf
          items:
            $ref: '#/components/schemas/UID'
      required:
        - modifiedAfter
    WarehouseSearchStockRequestSchema:
      title: WarehouseSearchStockRequestSchema
      x-stoplight:
        id: 0jre4jflcn80y
      type: object
      properties:
        modifiedAfter:
          type: string
          format: date-time
        warehouseUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
      required:
        - modifiedAfter
        - warehouseUids
    CustomerContactCreateRequestSchema:
      title: CustomerContactCreateSchema
      x-stoplight:
        id: sja9eehhjulss
      type: object
      description: CustomerContactCreateSchema
      required:
        - firstname
        - lastname
      properties:
        firstname:
          type: string
        lastname:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
        customerContactUid:
          $ref: '#/components/schemas/UID'
        role:
          $ref: '#/components/schemas/CustomerContactRoleENUM'
    CustomerContactLinkRequestSchema:
      type: object
      x-stoplight:
        id: 897d70205b299
      required:
        - customerUid
      properties:
        customerUid:
          $ref: '#/components/schemas/UID'
        role:
          $ref: '#/components/schemas/CustomerContactRoleENUM'
      title: CustomerContactLinkRequestSchema
    CustomerContactsCreateRequestSchema:
      title: CustomerContactsCreateRequestSchema
      x-stoplight:
        id: vtm3g9snb7i4x
      type: object
      description: CustomerContactsCreateRequestSchema
      required:
        - firstname
        - lastname
      properties:
        firstname:
          type: string
          x-stoplight:
            id: pgunubphqi6xd
        lastname:
          type: string
          x-stoplight:
            id: dm6eqdstsw07y
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
          x-stoplight:
            id: sj3wvgnm5ykcz
        customerContactUid:
          $ref: '#/components/schemas/UID'
        customers:
          type: array
          x-stoplight:
            id: ynr87xj2m3584
          items:
            $ref: '#/components/schemas/CustomerContactLinkRequestSchema'
    CustomerContactUpdateRequestSchema:
      title: CustomerContactUpdateSchema
      x-stoplight:
        id: mnxm8c1fcwf4f
      type: object
      properties:
        firstname:
          type: string
          x-stoplight:
            id: v1xy88sv7adhb
        lastname:
          type: string
          x-stoplight:
            id: 5zs35616apf56
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
          x-stoplight:
            id: icu1to8mtrdtj
      description: CustomerContactUpdateSchema
    OrderCustomerContactResponseSchema:
      type: object
      title: OrderCustomerContactResponseSchema
      required:
        - customerContactUid
        - firstname
        - lastname
        - email
        - mobile
        - displayName
      properties:
        customerContactUid:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
        displayName:
          type: string
    CustomerContactResponseSchema:
      title: CustomerContactResponseSchema
      x-stoplight:
        id: juhvwmhlcqpxe
      type: object
      description: CustomerContactResponseSchema
      required:
        - firstname
        - lastname
        - email
        - mobile
        - createdAt
        - lastModifiedAt
        - customerContactUid
        - extensions
        - displayName
        - role
      properties:
        firstname:
          type: string
          x-stoplight:
            id: 3etg9cp2vn1vw
        lastname:
          type: string
          x-stoplight:
            id: j7whfkajq4e3x
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
          x-stoplight:
            id: xxuotqcpj7hmq
        createdAt:
          type: string
          x-stoplight:
            id: b8up69t762a5z
          format: date-time
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 4cilfoy2xfd4y
          format: date-time
        customerContactUid:
          type: string
          x-stoplight:
            id: jql0hokhxlw1m
        extensions:
          type: array
          items:
            $ref: '#/components/schemas/CustomerContactExtensionResponseSchema'
        displayName:
          type: string
          x-stoplight:
            id: royhe0230le42
        role:
          $ref: '#/components/schemas/CustomerContactRoleENUM'
    CustomerContactsWithCustomersResponseSchema:
      title: CustomerContactsWithCustomersResponseSchema
      x-stoplight:
        id: wwe41pq12woe9
      type: object
      description: CustomerContactResponseSchema
      required:
        - firstname
        - lastname
        - email
        - mobile
        - createdAt
        - lastModifiedAt
        - customerContactUid
        - displayName
        - customers
      properties:
        firstname:
          type: string
        lastname:
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
        createdAt:
          type: string
          format: date-time
        lastModifiedAt:
          type: string
          format: date-time
        customerContactUid:
          type: string
        displayName:
          type: string
        customers:
          type: array
          x-stoplight:
            id: 9swzb7d5byslq
          items:
            $ref: '#/components/schemas/CustomerContactCustomersSchema'
    ProductMediaSchema:
      title: ProductMediaSchema
      x-stoplight:
        id: 510lvmqzmqr96
      type: object
      properties:
        productMediaUid:
          $ref: '#/components/schemas/UID'
        mainUrl:
          type: string
          x-stoplight:
            id: 1zndyccaw4qzu
        thumbnailUrl:
          type: string
          x-stoplight:
            id: g2zg5bkfo9sod
        position:
          type: integer
          x-stoplight:
            id: 02zui44sx2gqz
        width:
          type: integer
          x-stoplight:
            id: rc9xowrygr1fu
        height:
          type: integer
          x-stoplight:
            id: r9sf7322ytwn8
        isCoverImage:
          type: boolean
          x-stoplight:
            id: zi6b3b5zqzmfw
        source:
          $ref: '#/components/schemas/ProductMediaSourceENUM'
        createdAt:
          type: string
          x-stoplight:
            id: eqtgif23peche
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: 34um5bsl7a13p
        lastModifiedAt:
          type: string
          x-stoplight:
            id: vzku1erhnuo8c
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: 5dwj442ykdwy3
      required:
        - productMediaUid
        - mainUrl
        - thumbnailUrl
        - position
        - width
        - height
        - isCoverImage
        - source
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
    ProductMediaCreateSchema:
      title: ProductMediaCreateSchema
      x-stoplight:
        id: drqw18fv8mzoh
      type: object
      properties:
        mainUrl:
          type: string
          x-stoplight:
            id: 91wr5bnj9kmjf
        thumbnailUrl:
          type: string
          x-stoplight:
            id: x7xhpr90vlt7u
        position:
          type: integer
          x-stoplight:
            id: a8jbogty3lpwl
        setAsCoverImage:
          type: boolean
          x-stoplight:
            id: 9z48cedhwe47a
        productMediaUid:
          $ref: '#/components/schemas/OptionalUID'
      required:
        - mainUrl
    ProductMediaUploadSchema:
      title: ProductMediaUploadSchema
      type: object
      properties:
        media:
          type: string
          description: The file content as base64 or source URL.
        filename:
          type: string
        position:
          type: integer
        productMediaUid:
          $ref: '#/components/schemas/UID'
        setAsCoverImage:
          type: boolean
          x-stoplight:
            id: yjrpuzvs5n43m
      required:
        - media
        - filename
    ProductMediaUpdateSchema:
      title: ProductMediaUpdateSchema
      x-stoplight:
        id: 8eflsrkv6vvpb
      type: object
      properties:
        mainUrl:
          type: string
          x-stoplight:
            id: ojer73ycd7rtb
        thumbnailUrl:
          type: string
          x-stoplight:
            id: knkt5ro4ngin5
        position:
          type: integer
          x-stoplight:
            id: 8xd3opc2dlvfm
        setAsCoverImage:
          type: boolean
          x-stoplight:
            id: lsixnuz3k9a96
    ReportStateENUM:
      enum:
        - ABORTED
        - NOT_STARTED
        - IN_PROGRESS
        - COMPLETE
      title: ReportStateENUM
      type: string
    ReportActionENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | ABORT | Abort running job |
      title: ReportActionENUM
      type: string
      enum:
        - ABORT
    ReportResponseSchema:
      title: ReportResponseSchema
      x-stoplight:
        id: g55wjvxsi01v0
      type: object
      required:
        - reportUid
        - request
        - state
        - type
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - sendNotificationTo
        - progress
        - filename
        - filesize
      properties:
        reportUid:
          $ref: '#/components/schemas/UID'
        request:
          anyOf:
            - $ref: '#/components/schemas/SAFTReportCreateRequestSchema'
            - $ref: '#/components/schemas/WarehouseStockDetailsReportCreateRequestSchema'
            - $ref: '#/components/schemas/GeneralReportCreateRequestSchema'
            - $ref: '#/components/schemas/ArtSupplierReportRequestSchema'
          description: The request response depends on the what type of report it is
        state:
          $ref: '#/components/schemas/ReportStateENUM'
        type:
          $ref: '#/components/schemas/ReportTypeENUM'
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          type: string
          format: date-time
        lastModifiedBy:
          type: string
        sendNotificationTo:
          type: string
        notificationSentAt:
          type: string
          format: date-time
        progress:
          type: string
        filename:
          type: string
        filesize:
          type: integer
    CoverImageSchema:
      title: CoverImageSchema
      x-stoplight:
        id: ipa46ag4tx4eg
      type: object
      properties:
        productMediaUid:
          $ref: '#/components/schemas/UID'
        mainUrl:
          type: string
          x-stoplight:
            id: o6dzeyox0ye27
        thumbnailUrl:
          type: string
          x-stoplight:
            id: 5rpfhzh4ibj93
      required:
        - productMediaUid
        - mainUrl
        - thumbnailUrl
    DeliveryProviderUpdateRequestSchema:
      title: DeliveryProviderUpdateRequestSchema
      x-stoplight:
        id: lkr4ynb9p4fgj
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: gxj8rz1l8pvi7
        externalId:
          type: string
          x-stoplight:
            id: c3zb396vkghxu
      description: ''
    DeliveryProviderCreateRequestSchema:
      title: DeliveryProviderCreateRequestSchema
      x-stoplight:
        id: nu2bmpshvy49k
      type: object
      required:
        - name
      properties:
        name:
          type: string
        externalId:
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/UID'
    DeliveryProviderResponseSchema:
      title: DeliveryProviderResponseSchema
      x-stoplight:
        id: 34cs6ue61impk
      type: object
      required:
        - name
        - externalId
        - deliveryProviderUid
      properties:
        name:
          type: string
        externalId:
          type: string
        deliveryProviderUid:
          $ref: '#/components/schemas/UID'
    DeliveryProviderMethodUpdateRequestSchema:
      title: DeliveryProviderMethodUpdateRequestSchema
      x-stoplight:
        id: 3tbiehg5sjjw9
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: 6z1ffj9wc6urv
        externalId:
          type: string
          x-stoplight:
            id: 3b5m0na9jqoqr
        freightProductUid:
          $ref: '#/components/schemas/OptionalUID'
        dynamicOptions:
          type: boolean
          x-stoplight:
            id: zj0pmitt5opmd
    DeliveryProviderMethodCreateRequestSchema:
      title: DeliveryProviderMethodCreateRequestSchema
      x-stoplight:
        id: et27atlciod38
      type: object
      required:
        - name
      properties:
        name:
          type: string
        externalId:
          type: string
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/UID'
        freightProductUid:
          $ref: '#/components/schemas/OptionalUID'
        dynamicOptions:
          type: boolean
          x-stoplight:
            id: 5mprmz8lj4rj7
    DeliveryProviderMethodResponseSchema:
      title: DeliveryProviderMethodResponseSchema
      x-stoplight:
        id: 7j4b64yz2mkxn
      type: object
      required:
        - name
        - externalId
        - deliveryProviderMethodUid
        - freightProductUid
        - externalSystemMappings
        - dynamicOptions
      properties:
        name:
          type: string
        externalId:
          type: string
        deliveryProviderMethodUid:
          $ref: '#/components/schemas/UID'
        freightProductUid:
          $ref: '#/components/schemas/OptionalUID'
        externalSystemMappings:
          type: array
          x-stoplight:
            id: plrevo6kydlej
          items:
            $ref: '#/components/schemas/DeliveryProviderMethodMappingResponseSchema'
        dynamicOptions:
          type: boolean
          x-stoplight:
            id: gett5acbjh5x9
          description: This delivery method has dynamic options
    ServiceStatusWithPosition:
      title: ServiceStatusWithPosition
      x-stoplight:
        id: h1yth7sk1edse
      type: object
      properties:
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        serviceStatusName:
          type: string
          x-stoplight:
            id: mx9xuf31a82cs
        position:
          type: integer
          x-stoplight:
            id: 16s653ef2x4uc
        state:
          $ref: '#/components/schemas/ServiceStateENUM'
      required:
        - serviceStatusUid
        - serviceStatusName
        - position
        - state
    ServiceTypeStatusSchema:
      title: ServiceTypeStatusSchema
      x-stoplight:
        id: 0wx0efjexj7v1
      type: object
      properties:
        serviceStatusUid:
          $ref: '#/components/schemas/UID'
        position:
          type: integer
          x-stoplight:
            id: 5uxlvml8fhy35
      required:
        - serviceStatusUid
    ExternalWorkshopResponseSchema:
      title: ExternalWorkshopResponseSchema
      x-stoplight:
        id: 4yi9aq8nv2k7q
      type: object
      properties:
        externalWorkshopUid:
          $ref: '#/components/schemas/UID'
        companyName:
          type: string
          x-stoplight:
            id: xwf23jlo3kr9a
        address:
          type: string
          x-stoplight:
            id: ng5y7wkx3yvc9
        postalCode:
          type: string
          x-stoplight:
            id: pt65lljq64wea
        city:
          type: string
          x-stoplight:
            id: dzt24kxp5yufp
        countryCode:
          type: string
          x-stoplight:
            id: ugfnxplo6k5n9
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: xsehu0j4m6v81
        contactName:
          type: string
          x-stoplight:
            id: xjuc5nztg97h7
        note:
          type: string
          x-stoplight:
            id: hg97wi48djclb
        active:
          type: boolean
          x-stoplight:
            id: xmq0yes1utza3
        createdAt:
          type: string
          x-stoplight:
            id: f6lukuub8ukc5
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: xrhxnh1qzalqo
        lastModifiedAt:
          type: string
          x-stoplight:
            id: p0gki35e58pg7
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: cw3oom14vmszu
      required:
        - externalWorkshopUid
        - companyName
        - address
        - postalCode
        - city
        - countryCode
        - email
        - phone
        - contactName
        - note
        - active
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
    ExternalWorkshopUpdateSchema:
      title: ExternalWorkshopUpdateSchema
      x-stoplight:
        id: s8oezq2mfkyy7
      type: object
      properties:
        companyName:
          type: string
          x-stoplight:
            id: osaeezawkurcl
        address:
          type: string
          x-stoplight:
            id: zych6h13v9pq5
        postalCode:
          type: string
          x-stoplight:
            id: rvl1l5kr10bzo
        city:
          type: string
          x-stoplight:
            id: kxk2ug5lryggj
        countryCode:
          x-stoplight:
            id: ns1k4waqewlt3
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: nsjyoceq0dw4v
        contactName:
          type: string
          x-stoplight:
            id: cehn6i6k7sfuz
        note:
          type: string
          x-stoplight:
            id: by5i1avw7sewl
        active:
          type: boolean
          x-stoplight:
            id: qyes83tmvdsq9
          default: true
    ExternalWorkshopCreateSchema:
      title: ExternalWorkshopCreateSchema
      x-stoplight:
        id: ers78xj5wfmi0
      type: object
      properties:
        companyName:
          type: string
          x-stoplight:
            id: vevzsysu2ngft
        address:
          type: string
          x-stoplight:
            id: r3ecf06yczrvp
        postalCode:
          type: string
          x-stoplight:
            id: aoy5thcnvief1
        city:
          type: string
          x-stoplight:
            id: tuq7ethibwkmo
        countryCode:
          x-stoplight:
            id: t2izjc78st7jb
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        phone:
          type: string
          x-stoplight:
            id: nwvivmh9jhxgp
        contactName:
          type: string
          x-stoplight:
            id: z98z3sl75bug8
        note:
          type: string
          x-stoplight:
            id: 0fl4zgtu0mo2f
        active:
          type: boolean
          x-stoplight:
            id: 5419y905oaah1
          default: true
        externalWorkshopUid:
          $ref: '#/components/schemas/UID'
      required:
        - companyName
    CustomerExtensionRequestSchema:
      title: CustomerExtensionRequestSchema
      x-stoplight:
        id: ajdb1uvh28vkz
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeUid
    CustomerExtensionResponseSchema:
      title: CustomerExtensionResponseSchema
      description: CustomerExtensionResponseSchema
      x-stoplight:
        id: cdo3wkyom8jxk
      type: object
      required:
        - extensionCode
        - organizationUid
      properties:
        extensionCode:
          $ref: '#/components/schemas/CustomerExtensionCodeENUM'
        organizationUid:
          $ref: '#/components/schemas/OptionalUID'
    CustomerContactExtensionRequestSchema:
      title: CustomerContactExtensionRequestSchema
      type: object
      x-stoplight:
        id: v7fp02k4b52g2
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeUid
    CustomerContactExtensionResponseSchema:
      description: CustomerContactExtensionResponseSchema
      title: CustomerContactExtensionResponseSchema
      x-stoplight:
        id: 1ax7p2814bb4x
      type: object
      properties:
        extensionCode:
          $ref: '#/components/schemas/CustomerExtensionCodeENUM'
        organizationUid:
          $ref: '#/components/schemas/UID'
      required:
        - extensionCode
        - organizationUid
    ServiceShipmentResponseSchema:
      title: ServiceShipmentResponseSchema
      x-stoplight:
        id: u6tirwin4u09z
      type: object
      properties:
        serviceShipmentUid:
          $ref: '#/components/schemas/UID'
        sender:
          $ref: '#/components/schemas/ServiceShipmentSenderSchema'
        receiver:
          $ref: '#/components/schemas/ServiceShipmentReceiverResponseSchema'
        status:
          $ref: '#/components/schemas/ServiceShipmentStatusENUM'
        note:
          type: string
          x-stoplight:
            id: v03ze9mynlcg3
        trackingNumber:
          type: string
          x-stoplight:
            id: 8s0o90kh6ezpw
        shipmentNumber:
          type: string
          x-stoplight:
            id: 9ifsjra2xq7l1
        items:
          type: array
          items:
            $ref: '#/components/schemas/ServiceShipmentItemResponseSchema'
        createdBy:
          type: string
          x-stoplight:
            id: 2q0lwdl6iuzmh
        createdAt:
          type: string
          x-stoplight:
            id: lwrny9ojwk1gs
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: x5zf4unccrwbk
        lastModifiedAt:
          type: string
          x-stoplight:
            id: m6vmansgy66go
          format: date-time
        shipmentDate:
          type: string
          x-stoplight:
            id: 30m5n9fhzal40
          format: date-time
        allReceived:
          type: boolean
          x-stoplight:
            id: llh1b7x4bi50o
      required:
        - serviceShipmentUid
        - sender
        - receiver
        - status
        - note
        - trackingNumber
        - shipmentNumber
        - items
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
        - shipmentDate
        - allReceived
    ServiceShipmentStatusENUM:
      title: ServiceShipmentStatusENUM
      type: string
      enum:
        - NOT_SENT
        - IN_TRANSIT
        - RECEIVED
    InternalPurchaseOrderStatusENUM:
      title: InternalPurchaseOrderStatusENUM
      type: string
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NEW | Draft/work in progress|
        | READY_FOR_CONFIRMATION | The order is ready for confirmation by receiving store|
        | PREPARING_FOR_SHIPMENT | Internal purchase order is ready to be shipped from the sending store|
        | IN_TRANSIT | All quantity sent is registered and products are sent from sending store (and removed from warehouse)|
        | ARRIVED | Purchase order has arrived to requesting store and is ready for registering and controlling quantity|
        | COMPLETE | Purchase order is complete (and stock is added to the receiving stores warehouse)|
        | CANCELLED | Purchase order is cancelled.|
      enum:
        - NEW
        - READY_FOR_CONFIRMATION
        - PREPARING_FOR_SHIPMENT
        - IN_TRANSIT
        - ARRIVED
        - COMPLETE
        - CANCELLED
    ServiceShipmentReceiverResponseSchema:
      title: ServiceShipmentReceiverSchema
      x-stoplight:
        id: tx4t21vbypjhd
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        externalWorkshopUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeUid
        - externalWorkshopUid
    ServiceShipmentUpdateSchema:
      title: ServiceShipmentUpdateSchema
      x-stoplight:
        id: w9g9369tx3jtx
      type: object
      properties:
        sender:
          $ref: '#/components/schemas/ServiceShipmentSenderSchema'
        receiver:
          $ref: '#/components/schemas/ServiceShipmentReceiverUpdateSchema'
        note:
          type: string
          x-stoplight:
            id: 7e5lbx6zih6h3
        status:
          $ref: '#/components/schemas/ServiceShipmentStatusENUM'
        trackingNumber:
          type: string
          x-stoplight:
            id: lv8x8wuy40wo5
        shipmentNumber:
          type: string
          x-stoplight:
            id: woweb5jfbmies
        shipmentDate:
          type: string
          x-stoplight:
            id: 671je55qh2hz0
          format: date-time
        items:
          type: array
          items:
            $ref: '#/components/schemas/ServiceShipmentItemUpdateSchema'
      required:
        - sender
        - receiver
    InternalPurchaseOrderUpdateSchema:
      title: InternalPurchaseOrderUpdateSchema
      x-stoplight:
        id: 04er0hxlj6vo0
      type: object
      properties:
        note:
          type: string
        status:
          $ref: '#/components/schemas/InternalPurchaseOrderStatusENUM'
        trackingNumber:
          type: string
    ServiceShipmentCreateSchema:
      title: ServiceShipmentCreateSchema
      x-stoplight:
        id: ui00l5m2morol
      allOf:
        - $ref: '#/components/schemas/ServiceShipmentUpdateSchema'
        - type: object
          x-stoplight:
            id: d6kux5ln73ho7
          properties:
            serviceShipmentUid:
              $ref: '#/components/schemas/OptionalUID'
    InternalPurchaseOrderCreateSchema:
      title: InternalPurchaseOrderCreateSchema
      description: ''
      type: object
      required:
        - sendingStoreUid
        - receivingStoreUid
        - creatingStoreUid
      properties:
        sendingStoreUid:
          $ref: '#/components/schemas/UID'
        receivingStoreUid:
          $ref: '#/components/schemas/UID'
        internalPurchaseOrderUid:
          $ref: '#/components/schemas/UID'
        items:
          type: array
          items:
            $ref: '#/components/schemas/InternalPurchaseOrderItemCreateSchema'
        note:
          type: string
        status:
          $ref: '#/components/schemas/InternalPurchaseOrderStatusENUM'
        creatingStoreUid:
          $ref: '#/components/schemas/UID'
        autoOrderProposal:
          type: object
          x-stoplight:
            id: zn2fdpgdiwj4b
          description: Generate a internal purchase order proposal based on min/max
          required:
            - sendingWarehouseUid
            - receivingWarehouseUid
          properties:
            sendingWarehouseUid:
              $ref: '#/components/schemas/UID'
            receivingWarehouseUid:
              $ref: '#/components/schemas/UID'
    InternalPurchaseOrderResponseSchema:
      title: InternalPurchaseOrderResponseSchema
      x-stoplight:
        id: isnherlge95h0
      type: object
      description: |-
        - sendingStoreUid: The store that creates/sends the internal purchase order. 
        - receivingStoreUid: The store that receives the internal purchase order
        - creatingStoreUid: The store that creates the internal purchase order. May be different than sendingStoreUid
      required:
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - shippedAt
        - shippedBy
        - receivedAt
        - receivedBy
        - sendingStoreUid
        - receivingStoreUid
        - note
        - status
        - trackingNumber
        - items
        - internalPurchaseOrderUid
        - allowedStatuses
        - internalPurchaseOrderNumber
        - creatingStoreUid
      properties:
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        lastModifiedAt:
          format: date-time
          type: string
        lastModifiedBy:
          type: string
        shippedAt:
          type: string
          x-stoplight:
            id: j2i61j489o7y6
          format: date-time
          nullable: true
        shippedBy:
          type: string
          x-stoplight:
            id: v58ulode3i13e
          nullable: true
        receivedAt:
          type: string
          format: date-time
          nullable: true
        receivedBy:
          type: string
          nullable: true
        sendingStoreUid:
          $ref: '#/components/schemas/UID'
        receivingStoreUid:
          $ref: '#/components/schemas/UID'
        note:
          type: string
        status:
          $ref: '#/components/schemas/InternalPurchaseOrderStatusENUM'
        trackingNumber:
          type: string
          nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/InternalPurchaseOrderItemResponseSchema'
        internalPurchaseOrderUid:
          $ref: '#/components/schemas/UID'
        allowedStatuses:
          type: array
          x-stoplight:
            id: 6dpi1wkiler3z
          items:
            $ref: '#/components/schemas/InternalPurchaseOrderStatusENUM'
        internalPurchaseOrderNumber:
          type: string
          x-stoplight:
            id: z34jzdwdh0rbe
        creatingStoreUid:
          $ref: '#/components/schemas/UID'
    ServiceShipmentReceiverUpdateSchema:
      title: ServiceShipmentReceiverUpdateSchema
      x-stoplight:
        id: w61uj046k5ev2
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        externalWorkshopUid:
          $ref: '#/components/schemas/OptionalUID'
    ServiceShipmentSenderSchema:
      title: ServiceShipmentSenderSchema
      x-stoplight:
        id: s7uxhyv1lvsg9
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
      required:
        - storeUid
    ServiceShipmentItemResponseSchema:
      title: ServiceShipmentItemResponseSchema
      x-stoplight:
        id: hmbh9xi1qlc92
      type: object
      properties:
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        receivedDate:
          type: string
          x-stoplight:
            id: b4r5h5lwd7wam
          format: date-time
        createdAt:
          type: string
          x-stoplight:
            id: gwgojzoxhsk9t
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: crfggjcaotzfm
        lastModifiedAt:
          type: string
          x-stoplight:
            id: tidb8ui4z9n18
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: in8b34n911cfj
      required:
        - serviceOrderUid
        - receivedDate
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
    ServiceShipmentItemUpdateSchema:
      title: ServiceShipmentItemUpdateSchema
      x-stoplight:
        id: sn9lya4sytgl1
      type: object
      properties:
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        receivedDate:
          type: string
          x-stoplight:
            id: 7m3lrctyfxliz
          format: date-time
      required:
        - serviceOrderUid
    WarehouseStockLogResponseSchema:
      title: WarehouseStockLogResponseSchema
      x-stoplight:
        id: vwhcegmigtkvm
      allOf:
        - type: object
          properties:
            storeUid:
              $ref: '#/components/schemas/UID'
            storeName:
              type: string
              x-stoplight:
                id: zkw7r3ijni4wx
            warehouseUid:
              $ref: '#/components/schemas/UID'
            warehouseName:
              type: string
              x-stoplight:
                id: sqb2ceqxbsohg
            productUId:
              $ref: '#/components/schemas/UID'
            productSku:
              type: string
              x-stoplight:
                id: ts19zn1odntaf
            productName:
              type: string
              x-stoplight:
                id: 92h61k7blbvss
          required:
            - storeUid
            - storeName
            - warehouseUid
            - warehouseName
            - productUId
            - productSku
            - productName
        - $ref: '#/components/schemas/StockLogResponseSchema'
    WarehouseStockLogRequestSchema:
      title: WarehouseStockLogRequestSchema
      x-stoplight:
        id: zzbfk54jx90pf
      allOf:
        - properties:
            fromDateTime:
              type: string
              x-stoplight:
                id: 2ht3agkkjoh6d
              format: date-time
              description: 'GTE [>=]'
            toDateTime:
              type: string
              x-stoplight:
                id: ibs8kgcdd2ezb
              format: date-time
              description: 'LTE [=<]'
            warehouseUids:
              type: array
              x-stoplight:
                id: no1nsrje6folz
              items:
                $ref: '#/components/schemas/OptionalUID'
            transactionTypes:
              type: array
              x-stoplight:
                id: jwdjeggntyuha
              items:
                $ref: '#/components/schemas/TransactionTypeENUM'
          required:
            - fromDateTime
            - toDateTime
      type: object
    ReportFormatENUM:
      title: ReportFormatENUM
      x-stoplight:
        id: h3emjnurgjsgc
      type: string
      enum:
        - PDF
        - VISMANET
        - VISMABUSINESS
        - UNI
        - 24SEVEN
        - XLEDGER
        - NAVISION
      description: Supported report formats
    AccountingFileRequestSchema:
      title: AccountingFileRequestSchema
      x-stoplight:
        id: 9e2jcelqvyhr4
      allOf:
        - $ref: '#/components/schemas/AccountingRequestSchema'
        - type: object
          properties:
            reportFormat:
              $ref: '#/components/schemas/ReportFormatENUM'
    TillAppSettingsSchema:
      title: TillAppSettingsSchema
      x-stoplight:
        id: mvatr21yw5wdq
      type: object
      description: |-
        Application specific settings
        NOTE: This field is deprecated. Settings should be set on the device
      deprecated: true
      required:
        - saleStopAtDelivery
        - autoLogout
        - touchMode
      properties:
        saleStopAtDelivery:
          type: boolean
          x-stoplight:
            id: mvgj3u3u0i6or
          description: Stop in the delivery field for each product line during sale
        autoLogout:
          type: integer
          x-stoplight:
            id: rypwvfv1qczz4
          description: 'time in seconds, 0 = disabled, -1 = inherited from tenant'
        touchMode:
          $ref: '#/components/schemas/TillTouchModeENUM'
    AccountingConfigsSchema:
      title: AccountingConfigsSchema
      x-stoplight:
        id: 8fgk1xpqh3a5z
      x-examples: {}
      description: Accounting configs model
      type: object
      properties:
        accountingConfigsUid:
          type: string
          x-stoplight:
            id: 6kzelqlohu4ph
        configType:
          $ref: '#/components/schemas/AccountingConfigTypeENUM'
        key:
          $ref: '#/components/schemas/AccountingConfigKeyENUM'
        vatCodeUid:
          type: string
          x-stoplight:
            id: 46ie7djbdi588
        value:
          type: string
          x-stoplight:
            id: mb6yxcgx6smvw
    AccountingConfigsProductGroupResponseSchema:
      title: AccountingConfigsProductgroupSchema
      x-stoplight:
        id: 06rgwdgs4vnji
      x-examples: {}
      type: object
      required:
        - productGroupUid
        - vatCodeUid
        - account
        - accountingConfigUid
      properties:
        productGroupUid:
          $ref: '#/components/schemas/UID'
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        account:
          description: Account number
          x-stoplight:
            id: pndrhl809179p
          type: string
        accountingConfigUid:
          $ref: '#/components/schemas/UID'
    AccountingConfigsVatTypeResponseSchema:
      title: AccountingConfigsVatTypeResponseSchema
      x-stoplight:
        id: bisj45uuao2le
      x-examples: {}
      description: Treat codes
      type: object
      required:
        - balance
        - vatCodes
      properties:
        balance:
          type: string
          description: VAT type used for balance transactions
        vatCodes:
          type: array
          items:
            $ref: '#/components/schemas/AccountingConfigsVatTypeVatcode'
    AccountingConfigsVatTypeRequestSchema:
      title: AccountingConfigsVatTypeRequestSchema
      x-stoplight:
        id: 9te9zaxvt8cp3
      x-examples: {}
      description: Treat codes
      type: object
      properties:
        balance:
          type: string
          description: VAT type used for balance transactions
        vatCodes:
          type: array
          items:
            $ref: '#/components/schemas/AccountingConfigsVatTypeVatcode'
    AccountingConfigsVatTypeVatcode:
      title: AccountingConfigsVatTypeVatcode
      x-stoplight:
        id: jzqfeype4ign1
      type: object
      description: ''
      required:
        - vatCodeUid
        - value
      properties:
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        value:
          type: string
          x-stoplight:
            id: cmpmcyq77a4yv
    AccountingConfigsTreatcodeResponseSchema:
      title: AccountingConfigsTreatcodeResponseSchema
      x-stoplight:
        id: xos7ffrtk20ah
      x-examples: {}
      description: Treat codes
      type: object
      required:
        - creditLedger
        - generalLedger
        - ledger
        - payment
      properties:
        creditLedger:
          type: string
          description: Used for credit notes
          x-stoplight:
            id: ybkfmgr2ljobj
        generalLedger:
          type: string
          x-stoplight:
            id: d3rn3fa0ye2q2
          description: Used for general ledger
        ledger:
          type: string
          description: Used for invoices and other ledgers
          x-stoplight:
            id: i9nawlbwcgmy0
        payment:
          type: string
          description: Used for payment of invoices
          x-stoplight:
            id: h2ddwi7qk9bbq
    AccountingConfigsTreatcodeRequestSchema:
      title: AccountingConfigsTreatcodeRequestSchema
      x-stoplight:
        id: 7l713tgjnmdgn
      x-examples: {}
      description: Treat codes
      type: object
      properties:
        creditLedger:
          type: string
          description: Used for credit notes
        generalLedger:
          type: string
          description: Used for general ledger
        ledger:
          type: string
          description: Used for invoices and other ledgers
        payment:
          type: string
          description: Used for payment of invoices
    AccountingConfigsAccountnumberResponseSchema:
      title: AccountingConfigsAccountnumberSchema
      x-stoplight:
        id: nt7qycmakv3gz
      x-examples: {}
      description: Accounting configs model
      type: object
      required:
        - customer
        - customerDummy
        - error
        - partlyPaidInvoice
        - cashfloatDeposit
        - cashfloatWithdrawal
        - cashfloatToBank
        - cashfloatExpenseWithdrawal
        - cashfloatDiff
        - vatCodes
      properties:
        customer:
          type: string
          x-stoplight:
            id: 7c7i95maz9t5w
          description: Account for customers
        customerDummy:
          type: string
          x-stoplight:
            id: a7zgtccu280m7
        error:
          type: string
          x-stoplight:
            id: 9k23x3psvuou4
          description: 'Error account, used if no valid account is found'
        partlyPaidInvoice:
          type: string
          x-stoplight:
            id: hvku1hqoh3c0x
          description: Interim account for partly paid invoices.
        cashfloatDeposit:
          type: string
          x-stoplight:
            id: 2x3eed55tltwv
          description: Deposit cash float into the cash register
        cashfloatWithdrawal:
          type: string
          x-stoplight:
            id: gaz8ockg5ic03
          description: Withdraw cash float from the cash register
        cashfloatToBank:
          type: string
          x-stoplight:
            id: 38poz4ql0g06q
          description: Withdraw cash float and transfer it to the bank
        cashfloatExpenseWithdrawal:
          type: string
          x-stoplight:
            id: vry161bnsp3jq
          description: Withdraw cash float for expenses throughout the day
        cashfloatDiff:
          type: string
          x-stoplight:
            id: n2pdu59e94cqo
          description: Account for cash register till count discrepancies
        vatCodes:
          type: array
          x-stoplight:
            id: pexqdqxcyscam
          items:
            $ref: '#/components/schemas/AccountingConfigsAccountnumberVatcode'
    AccountingConfigsAccountnumberRequestSchema:
      title: AccountingConfigsAccountnumberSchema
      x-stoplight:
        id: 2912srr0rp5er
      x-examples: {}
      description: Accounting configs model
      type: object
      properties:
        customer:
          type: string
          description: Account for customers
        customerDummy:
          type: string
        error:
          type: string
          description: 'Error account, used if no valid account is found'
        partlyPaidInvoice:
          type: string
          description: Interim account for partly paid invoices.
        cashfloatDeposit:
          type: string
          description: Deposit cash float into the cash register
        cashfloatWithdrawal:
          type: string
          description: Withdraw cash float from the cash register
        cashfloatToBank:
          type: string
          description: Withdraw cash float and transfer it to the bank
        cashfloatExpenseWithdrawal:
          type: string
          description: Withdraw cash float for expenses throughout the day
          x-stoplight:
            id: r1zcmixy6ai7d
        cashfloatDiff:
          type: string
          description: Account for cash register till count discrepancies
          x-stoplight:
            id: 8d6rxrhibx9er
        vatCodes:
          type: array
          items:
            $ref: '#/components/schemas/AccountingConfigsAccountnumberVatcode'
    AccountingConfigsAccountnumberVatcode:
      title: AccountingConfigsAccountnumberVatcode
      x-stoplight:
        id: nh2v376f61etp
      type: object
      required:
        - vatCodeUid
        - account
      properties:
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        account:
          type: string
          x-stoplight:
            id: mpn237q70vnov
      description: List of all VAT codes defined
    AccountingConfigsResponseSchema:
      title: AccountingConfigsResponseSchema
      x-stoplight:
        id: si8o9uh2tmcj9
      x-examples: {}
      description: Accounting configs model
      type: object
      required:
        - accountingConfigsUid
        - configType
        - key
        - value
        - vatCodeUid
        - productGroupUid
      properties:
        accountingConfigsUid:
          type: string
          x-stoplight:
            id: zq8ak388wk2hw
        configType:
          $ref: '#/components/schemas/AccountingConfigTypeENUM'
        key:
          $ref: '#/components/schemas/AccountingConfigKeyENUM'
        value:
          type: string
        vatCodeUid:
          $ref: '#/components/schemas/OptionalUID'
        productGroupUid:
          $ref: '#/components/schemas/OptionalUID'
    AccountingConfigsRequestSchema:
      title: AccountingConfigsRequestSchema
      x-stoplight:
        id: 50rmjcbhw4te6
      x-examples: {}
      description: |-
        Accounting configs model

        vatCodeUid should always be filled when `key` is of type `VATCODE`
      type: object
      properties:
        accountingConfigUid:
          $ref: '#/components/schemas/UID'
        configType:
          $ref: '#/components/schemas/AccountingConfigTypeENUM'
        key:
          $ref: '#/components/schemas/AccountingConfigKeyENUM'
        value:
          type: string
        vatCodeUid:
          $ref: '#/components/schemas/UID'
      required:
        - configType
        - key
        - value
    AccountingConfigsProductGroupRequestSchemaDeprecated:
      title: AccountingConfigsProductGroupRequestSchemaDeprecated
      x-stoplight:
        id: nr5v8ieblzxc6
      x-examples: {}
      description: Create a new account mapping to a product group
      type: object
      required:
        - value
        - vatCodeUid
        - productGroupUid
      properties:
        accountingConfigUid:
          $ref: '#/components/schemas/UID'
        value:
          type: string
          x-stoplight:
            id: 2d70gy50jh8oy
          description: accountNumber
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        productGroupUid:
          $ref: '#/components/schemas/UID'
    AccountingConfigsProductGroupRequestSchema:
      title: AccountingConfigsProductGroupRequestSchema
      x-stoplight:
        id: ghriygwuqa0xv
      x-examples: {}
      description: Create a new account mapping to a product group
      type: object
      required:
        - account
        - vatCodeUid
        - productGroupUid
      properties:
        accountingConfigUid:
          $ref: '#/components/schemas/UID'
        account:
          type: string
          description: accountNumber
          x-stoplight:
            id: r6n7ql57rf44c
        vatCodeUid:
          $ref: '#/components/schemas/UID'
        productGroupUid:
          $ref: '#/components/schemas/UID'
    AccountingConfigsUpdateSchema:
      title: AccountingConfigsUpdateSchema
      x-stoplight:
        id: 35l17f5vdrnba
      x-examples: {}
      description: ''
      type: object
      required:
        - value
      properties:
        value:
          type: string
    AccountingConfigTypeENUM:
      enum:
        - ACCOUNTNUMBER
        - TREATCODE
        - VAT_TYPE_ID
        - PRODUCTGROUP
      x-stoplight:
        id: e4c491e255e5e
      title: AccountingConfigTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    AccountingConfigKeyENUM:
      enum:
        - CUSTOMER
        - CUSTOMERDUMMY
        - ERROR
        - PARTLYPAIDINVOICE
        - CREDITLEDGER
        - GENERALLEDGER
        - LEDGER
        - BALANCE
        - VATCODE
        - PAYMENT
        - CASHFLOAT_DEPOSIT
        - CASHFLOAT_WITHDRAWAL
        - CASHFLOAT_TO_BANK
        - CASHFLOAT_EXPENSE_WITHDRAWAL
        - CASHFLOAT_DIFF
      x-stoplight:
        id: 1szpdvng89rrk
      title: AccountingConfigsConfigKeyEnums
      type: string
      x-internal: false
      x-tags:
        - ENUM
    LanguageCode:
      title: LanguageCode
      x-stoplight:
        id: ovoqx55etgz1f
      description: ISO 639-1 code for language
      type: string
    DeliveryProviderMethodTimeslotResponseSchema:
      title: DeliveryProviderMethodTimeslotResponseSchema
      x-stoplight:
        id: 2q4qvrewr9eiu
      type: object
      description: DeliveryProviderMethodTimeslotResponseSchema
      required:
        - deliveryProviderMethodTimeslotUid
        - name
        - startTime
        - endTime
        - applicableDays
        - excludedDates
        - deliveryCount
      properties:
        deliveryProviderMethodTimeslotUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: p4lj9f800qqaz
        startTime:
          type: string
          x-stoplight:
            id: 4nsogyi7ilunq
          format: time
        endTime:
          type: string
          x-stoplight:
            id: a181ir2k4ppq1
          format: time
        applicableDays:
          type: array
          x-stoplight:
            id: 16avdf18g3f4t
          items:
            $ref: '#/components/schemas/WeekDayENUM'
        excludedDates:
          type: array
          x-stoplight:
            id: fumgyh5qpbei1
          description: 'Format: YYYY-MM-DD'
          items:
            x-stoplight:
              id: f31rfryaywo07
            type: string
            example: '2023-12-24'
        deliveryCount:
          type: integer
          x-stoplight:
            id: 99jpccu4hjfng
    DeliveryProviderMethodTimeslotCreateRequestSchema:
      title: timeslotRequestModel
      x-stoplight:
        id: 4d7z8j3ej3y1d
      type: object
      description: timeslotRequestModel
      required:
        - name
        - startTime
        - endTime
        - applicableDays
      properties:
        name:
          type: string
          x-stoplight:
            id: 9ld4imyc679sk
        startTime:
          type: string
          x-stoplight:
            id: rgvvqmt7wpv1x
          format: time
          description: 'HH:MM'
        endTime:
          type: string
          x-stoplight:
            id: kn98evq60luv6
          format: time
          description: 'HH:MM'
        applicableDays:
          type: array
          x-stoplight:
            id: o28gw4qlnzt7z
          items:
            $ref: '#/components/schemas/WeekDayENUM'
        excludedDates:
          type: array
          x-stoplight:
            id: 3si8hyxwi3coi
          description: 'Format: YYYY-MM-DD'
          items:
            x-stoplight:
              id: jwnax2pedp67g
            type: string
            example: '2023-12-24'
        deliveryProviderMethodTimeslotUid:
          type: string
          x-stoplight:
            id: o2j7gg5ielwgz
    DeliveryProviderMethodTimeslotUpdateRequestSchema:
      title: DeliveryProviderMethodTimeslotUpdateRequestSchema
      x-stoplight:
        id: 8i46dzmlfxl6n
      type: object
      description: DeliveryProviderMethodTimeslotUpdateRequestSchema
      properties:
        name:
          type: string
        startTime:
          type: string
          format: time
          description: 'HH:MM'
        endTime:
          type: string
          format: time
          description: 'HH:MM'
        applicableDays:
          type: array
          items:
            $ref: '#/components/schemas/WeekDayENUM'
        excludedDates:
          type: array
          description: 'Format: YYYY-MM-DD'
          items:
            type: string
            x-stoplight:
              id: xr0s49d8djx3z
            example: '2023-12-24'
    WeekDayENUM:
      enum:
        - MONDAY
        - TUESDAY
        - WEDNESDAY
        - THURSDAY
        - FRIDAY
        - SATURDAY
        - SUNDAY
      title: WeekDayENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
    DeliveryProviderMethodTimeslotAvailableResponseSchema:
      title: DeliveryProviderMethodTimeslotAvailableResponseSchema
      x-stoplight:
        id: 2cqr95bm5bjh5
      type: object
      properties:
        date:
          type: string
          x-stoplight:
            id: c7pov171gsf40
          format: date
        timeslots:
          type: array
          x-stoplight:
            id: kyz0xgz11kz62
          items:
            $ref: '#/components/schemas/DeliveryProviderMethodTimeslotResponseSchema'
      required:
        - date
        - timeslots
    OpeningHoursResponseSchema:
      title: OpeningHoursResponseSchema
      x-stoplight:
        id: abmst3l8pzhrb
      type: object
      properties:
        monday:
          type: string
          x-stoplight:
            id: o5h3fzi3r1jli
        tuesday:
          type: string
          x-stoplight:
            id: vr8omcwdmbo0h
        wednesday:
          type: string
          x-stoplight:
            id: sc9xbv2cqs2le
        thursday:
          type: string
          x-stoplight:
            id: fk20l1khyks1r
        friday:
          type: string
          x-stoplight:
            id: 6pmt8jkua17lo
        saturday:
          type: string
          x-stoplight:
            id: 3tdwd55tklbn4
        sunday:
          type: string
          x-stoplight:
            id: 8u2kruqceo00y
        note:
          type: string
          x-stoplight:
            id: 7cy80nz011t9c
      required:
        - monday
        - tuesday
        - wednesday
        - thursday
        - friday
        - saturday
        - sunday
        - note
    OpeningHoursRequestSchema:
      title: OpeningHoursRequestSchema
      x-stoplight:
        id: 1bqfjxik6m7kz
      type: object
      properties:
        monday:
          type: string
          x-stoplight:
            id: yj37gcyhwqc0j
        tuesday:
          type: string
          x-stoplight:
            id: g3fpogg7ltbmg
        wednesday:
          type: string
          x-stoplight:
            id: 7p0810zralfsw
        thursday:
          type: string
          x-stoplight:
            id: phaiovmel019r
        friday:
          type: string
          x-stoplight:
            id: ezdsvglnfe8wi
        saturday:
          type: string
          x-stoplight:
            id: k110zj9wzk5kv
        sunday:
          type: string
          x-stoplight:
            id: zy5iimkpi8a5n
        note:
          type: string
          x-stoplight:
            id: mkd2z6xiqsbfy
    WarehouseProductDetailsResponseSchema:
      title: WarehouseProductDetailsResponseSchema
      x-stoplight:
        id: jcwrpbpdz5ox8
      allOf:
        - $ref: '#/components/schemas/WarehouseStockDetailsResponseSchema'
        - type: object
          x-stoplight:
            id: 5jyjv7indacxl
          properties:
            productSku:
              type: string
              x-stoplight:
                id: 1hfvynqbxrrnc
            productUid:
              $ref: '#/components/schemas/UID'
          required:
            - productSku
            - productUid
    TenantPaymentMethodParameterResponseSchema:
      title: TenantPaymentMethodParameterResponseSchema
      x-stoplight:
        id: iqc7vn24iazwi
      type: object
      properties:
        tenantPaymentMethodParameterUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: e7c3f3sbu19qw
        description:
          type: string
          x-stoplight:
            id: 3vt28clxlqw5r
        required:
          type: boolean
          x-stoplight:
            id: x3kp2lxmiazpq
        key:
          type: string
          x-stoplight:
            id: i5d3o73uqckss
        type:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
        regex:
          type: string
          x-stoplight:
            id: frdpkquf63u66
          description: regular expression
        position:
          type: integer
          x-stoplight:
            id: xr02rw7c2m9lx
        createdAt:
          type: string
          x-stoplight:
            id: kr49murm50qyc
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: 1otu7j0j4oghn
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 1z1m0www7a180
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: 0lvzb80vox904
      required:
        - tenantPaymentMethodParameterUid
        - name
        - description
        - required
        - key
        - type
        - regex
        - position
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
    TenantPaymentMethodParameterExtractResponseSchema:
      title: TenantPaymentMethodParameterExtractResponseSchema
      description: TenantPaymentMethodParameterExtractResponseSchema
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        required:
          type: boolean
        key:
          type: string
        type:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
        regex:
          type: string
          description: regular expression
      required:
        - name
        - description
        - required
        - key
        - type
        - regex
    AvailablePaymentMethodParametersResponseSchema:
      title: AvailablePaymentMethodParametersResponseSchema
      description: AvailablePaymentMethodParametersResponseSchema
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        required:
          type: boolean
        key:
          type: string
        keyType:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
        regex:
          type: string
          description: regular expression
      required:
        - name
        - description
        - required
        - key
        - keyType
        - regex
    TenantPaymentMethodParameterTypeENUM:
      title: TenantPaymentMethodParameterTypeENUM
      x-stoplight:
        id: bnfz8r04d8f6b
      type: string
      enum:
        - TEXT
        - INTEGER
        - NUMERIC
        - DATE
        - MOBILE
        - MODULUS10
        - MODULUS11
    TenantPaymentMethodParameterCreateRequestSchema:
      title: TenantPaymentMethodParameterCreateRequestSchema
      x-stoplight:
        id: vso54qlv8zw2j
      type: object
      properties:
        tenantPaymentMethodParameterUid:
          $ref: '#/components/schemas/OptionalUID'
        name:
          type: string
          x-stoplight:
            id: y7j1qwq2dj8ob
        description:
          type: string
          x-stoplight:
            id: 7o1e74bkq6xem
        required:
          type: boolean
          x-stoplight:
            id: uhsmmfou1vzfj
        key:
          type: string
          x-stoplight:
            id: bk6e3savfjo4d
        type:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
        regex:
          type: string
          x-stoplight:
            id: xk68zyotnp0rz
          description: regular expression
          format: regex
        position:
          type: integer
          x-stoplight:
            id: fx90z2t3ok0dv
      required:
        - name
        - required
        - key
        - type
    TenantPaymentMethodParameterUpdateRequestSchema:
      title: TenantPaymentMethodParameterUpdateRequestSchema
      x-stoplight:
        id: 5cd1x9h0s9c0a
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: 9qbf6x9rmscq8
        description:
          type: string
          x-stoplight:
            id: lvxc73qj44ft0
        required:
          type: boolean
          x-stoplight:
            id: rzn06f5uvzwbz
        key:
          type: string
          x-stoplight:
            id: u52cjwlhkqioe
        type:
          $ref: '#/components/schemas/TenantPaymentMethodParameterTypeENUM'
        regex:
          type: string
          x-stoplight:
            id: 6mszvmc5x9doz
          description: regular expression
          format: regex
        position:
          type: integer
          x-stoplight:
            id: en8a5xs4077pi
    LocaleMetadataResponseSchema:
      title: LocaleMetadataResponseSchema
      x-stoplight:
        id: iymqt8xcnz1p8
      type: object
      properties:
        locale:
          type: string
          x-stoplight:
            id: t5271eybhycna
        name:
          type: string
          x-stoplight:
            id: n9mo6dei6eij8
      required:
        - locale
        - name
    ProductMediaSourceENUM:
      title: ProductMediaSourceENUM
      x-stoplight:
        id: 6882vp2rroxqm
      enum:
        - FLOW
        - URL
      description: ''
      type: string
      x-tags:
        - ENUM
    GeneratedSkuENUM:
      title: GeneratedSkuENUM
      x-stoplight:
        id: cdgjt4anlr7md
      enum:
        - NUMERIC
      type: string
    CurrencyResponseSchema:
      title: CurrencyResponseSchema
      x-stoplight:
        id: ufppswsva8n0b
      type: object
      required:
        - currencyUid
        - currencyCode
        - exchangeRate
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        currencyUid:
          $ref: '#/components/schemas/UID'
        currencyCode:
          type: string
          x-stoplight:
            id: bnjtd358l7d69
          description: ISO 4217 standard
        exchangeRate:
          type: integer
          x-stoplight:
            id: 1hhsvhzaatman
          description: in cents (2 decimals)
        createdAt:
          type: string
          x-stoplight:
            id: zf2ektkzvt464
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: km63cv1q9n29v
        lastModifiedAt:
          type: string
          x-stoplight:
            id: b81evg4xfyg9u
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: g9jo7hs4pnflk
    OrderOperationRequestSchema:
      title: OrderOperationRequestSchema
      x-stoplight:
        id: nl92meguisosr
      type: object
      required:
        - operation
      properties:
        operation:
          $ref: '#/components/schemas/OrderOperationENUM'
    OrderOperationENUM:
      title: OrderOperationENUM
      type: string
      enum:
        - RECALCULATE_SETTLEMENTS
        - RECALCULATE_COSTPRICES
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECALCULATE_SETTLEMENTS | Do a sum of settlements on order and calculate the settle_state on order|
        | RECALCULATE_COSTPRICES | Retreive updated costprices on the order linse of an order. Can only be done when order state = PARKED|
    InternalPurchaseOrderItemProductResponseSchema:
      title: InternalPurchaseOrderItemProductResponseSchema
      x-stoplight:
        id: 5aaaybis9ryzo
      type: object
      required:
        - productUid
        - productName
        - productSku
        - coverImage
        - serialNoRequired
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        productName:
          type: string
          x-stoplight:
            id: a69dtketa2q4p
        productSku:
          type: string
          x-stoplight:
            id: 9mm5igp5wag12
        coverImage:
          $ref: '#/components/schemas/CoverImageSchema'
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
    SettlementCurrencySchema:
      title: SettlementCurrencySchema
      x-stoplight:
        id: 89776xqogvdab
      type: object
      required:
        - amount
        - code
        - exchangeRate
      properties:
        amount:
          type: integer
          x-stoplight:
            id: kvtv416ix6cet
        code:
          type: string
          x-stoplight:
            id: w13k0ouwdjg4g
        exchangeRate:
          type: integer
          x-stoplight:
            id: eazkf1nce9m2k
    ServiceEventNotificationResponseSchema:
      title: ServiceEventNotificationResponseSchema
      x-stoplight:
        id: ym81xjxcq0eyb
      type: object
      required:
        - notificationUid
        - type
        - state
        - recipient
      properties:
        notificationUid:
          $ref: '#/components/schemas/UID'
        type:
          $ref: '#/components/schemas/MessageTypeENUM'
        state:
          $ref: '#/components/schemas/NotificationStateENUM'
        recipient:
          type: string
          x-stoplight:
            id: rkdsqnf8nwvnq
    CurrencyMetadataResponseSchema:
      title: CurrencyMetadataResponseSchema
      x-stoplight:
        id: 3an6ep0ort44n
      type: object
      required:
        - currencyCode
        - name
        - denominations
      properties:
        currencyCode:
          type: string
          x-stoplight:
            id: ibqpz55ee8tsc
          description: ISO 4217 standard
        name:
          type: string
          x-stoplight:
            id: n5a4zebx1naui
        denominations:
          $ref: '#/components/schemas/CurrencyDenominationsMetadataSchema'
    CustomerConsentChangeSchema:
      title: CustomerConsentChangeSchema
      x-stoplight:
        id: 4xwb99552l974
      type: object
      required:
        - source
        - status
      properties:
        source:
          type: string
          x-stoplight:
            id: vm77g82dvgw1t
        status:
          type: boolean
          x-stoplight:
            id: xg7wddyg6egrn
          description: Is the consent active or withdrawn
    CustomerConsentStatusSchema:
      title: CustomerConsentStatusSchema
      x-stoplight:
        id: e2u3dcfq7rd0j
      type: object
      required:
        - consentUid
        - name
        - status
        - source
        - createdAt
      properties:
        consentUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: o1t3k4pkfnzlb
        status:
          type: boolean
          x-stoplight:
            id: c8r2187lz7bqu
        source:
          type: string
          x-stoplight:
            id: 534u8ytjhrhix
        createdAt:
          type: string
          x-stoplight:
            id: m2rh8g1wejydq
          format: date-time
    ServiceOrderTotalsSchema:
      title: ServiceOrderTotalsSchema
      x-stoplight:
        id: uox1icmugnl00
      type: object
      required:
        - grandTotal
        - partsTotal
        - workTotal
      properties:
        grandTotal:
          type: integer
          x-stoplight:
            id: 1njlw9scepcox
        partsTotal:
          type: integer
          x-stoplight:
            id: 3yxax0u6lv2ap
        workTotal:
          type: integer
          x-stoplight:
            id: ex7z3x94a70bq
    HourlyRateResponseSchema:
      title: HourlyRateResponseSchema
      x-stoplight:
        id: 7bl7va9nb12zf
      type: object
      required:
        - hourlyRateUid
        - name
        - price
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        hourlyRateUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 3y5mefg3imo55
        price:
          type: integer
          x-stoplight:
            id: 2h8m86oz40v27
        createdAt:
          type: string
          x-stoplight:
            id: 8hyfl6g8tavqr
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: wmg8lyzli15w5
        lastModifiedAt:
          type: string
          x-stoplight:
            id: x609vjs88d278
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: bygyz70qzmr62
    ServiceOrderSearchRequestSchema:
      title: ServiceOrderSearchRequestSchema
      x-stoplight:
        id: djtkwsvl2h3cw
      type: object
      properties:
        customerName:
          type: string
          x-stoplight:
            id: fk5jfmj5hkokl
        customerMobile:
          type: string
          x-stoplight:
            id: otde8otrfq53p
        customerEmail:
          type: string
        title:
          type: string
          x-stoplight:
            id: zjhsrzh262jj1
        serviceNumber:
          type: string
          x-stoplight:
            id: 10147ty7348ac
        query:
          type: string
          x-stoplight:
            id: palwub5m0klby
          description: 'Search on customer, service number and title in one.'
        fromCreatedDate:
          type: string
          x-stoplight:
            id: qlbbfoj3qh6h9
          format: date
          description: 'GTE date, e.g. 2006-05-04'
        toCreatedDate:
          type: string
          x-stoplight:
            id: xxh0gij7wtxmo
          format: date
          description: 'LTE date, e.g. 2006-05-04'
        assignedUserUids:
          type: array
          x-stoplight:
            id: axbj8c4yaaeom
          items:
            $ref: '#/components/schemas/UID'
        createdFromStoreUids:
          type: array
          x-stoplight:
            id: ueq1v92y47jkc
          items:
            $ref: '#/components/schemas/UID'
        priorities:
          type: array
          x-stoplight:
            id: e2n447zzs1qbf
          items:
            $ref: '#/components/schemas/PriorityENUM'
        serviceStates:
          type: array
          x-stoplight:
            id: wrf7osvu1nhax
          items:
            $ref: '#/components/schemas/ServiceStateENUM'
        serviceTypeUids:
          type: array
          x-stoplight:
            id: rfxb9ce2lacuk
          items:
            $ref: '#/components/schemas/UID'
    LoyaltyMemberResponseSchema:
      title: LoyaltyMemberResponseSchema
      type: object
      x-tags:
        - Loyalty
      required:
        - loyaltyId
        - firstName
        - lastName
        - address
        - postalCode
        - city
        - countryCode
        - email
        - mobile
        - consents
        - customerUid
        - origin
        - displayName
      properties:
        loyaltyId:
          type: string
          x-stoplight:
            id: 4i1zmcmyzqhko
        firstName:
          type: string
          x-stoplight:
            id: izhr59mi1bwsr
        lastName:
          type: string
          x-stoplight:
            id: f5sm86v7nn7t9
        address:
          type: string
        postalCode:
          type: string
        city:
          type: string
        countryCode:
          description: 'ISO 3166-1: 2 characters representation of country'
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
        consents:
          type: array
          x-stoplight:
            id: q6gifawrd2g1c
          items:
            x-stoplight:
              id: 8tbrjsw6kkbrc
            type: string
        customerUid:
          $ref: '#/components/schemas/UID'
        origin:
          type: string
        displayName:
          type: string
          x-stoplight:
            id: ek0kr3gnpn803
    LoyaltyDiscountResponseSchema:
      title: LoyaltyDiscountResponseSchema
      x-stoplight:
        id: qy5afm0oko70z
      type: object
      required:
        - discountCode
        - title
        - description
        - validFrom
        - validTo
        - discountType
        - discountValue
        - maxUsage
        - timesUsed
        - productSkus
      properties:
        discountCode:
          type: string
          x-stoplight:
            id: zff4vrmnk185s
        title:
          type: string
          x-stoplight:
            id: 5vpfd82m2jap4
        description:
          type: string
          x-stoplight:
            id: u3fkzomj8m5hs
        validFrom:
          type: string
          x-stoplight:
            id: sllb9hktsr1ss
          format: date-time
        validTo:
          type: string
          x-stoplight:
            id: czm1izsghgx64
          format: date-time
        discountType:
          $ref: '#/components/schemas/DiscountTypeENUM'
        discountValue:
          type: integer
          x-stoplight:
            id: q40j23uye8f1c
        maxUsage:
          type: integer
          x-stoplight:
            id: 2avbukzhnnqqz
        timesUsed:
          type: integer
          x-stoplight:
            id: 8gh34eipqermh
        productSkus:
          type: array
          x-stoplight:
            id: aikev40ati0ke
          items:
            x-stoplight:
              id: q9e86ce0vjdk6
            type: string
    DiscountTypeENUM:
      title: DiscountTypeENUM
      x-stoplight:
        id: 8ioem7yvvziv6
      type: string
      enum:
        - PERCENTAGE
        - AMOUNT
    OrderDiscountResponseSchema:
      title: OrderDiscountResponseSchema
      x-stoplight:
        id: xrotim46vb8x7
      type: object
      required:
        - orderDiscountUid
        - discountCode
        - type
        - amount
        - name
        - origin
        - validTo
        - maxUsage
        - productSkus
        - orderItemUids
        - externalTransactionId
        - scope
        - discountReasonCode
        - discountReference
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
        - campaignUid
      properties:
        orderDiscountUid:
          $ref: '#/components/schemas/UID'
        discountCode:
          type: string
          x-stoplight:
            id: 4os2sjr9qzpdg
        type:
          $ref: '#/components/schemas/DiscountTypeENUM'
        amount:
          type: integer
          x-stoplight:
            id: zzibi5j52kjqi
        name:
          type: string
          x-stoplight:
            id: oggdutje5ncnk
        origin:
          $ref: '#/components/schemas/DiscountOriginENUM'
        validTo:
          type: string
          x-stoplight:
            id: 1stzmbzld8y4d
          format: date-time
        maxUsage:
          type: integer
          x-stoplight:
            id: cvvpdhose0vbi
        productSkus:
          type: array
          x-stoplight:
            id: efgzxkrde7dtg
          items:
            x-stoplight:
              id: wpfrtosgiy67h
            type: string
        orderItemUids:
          x-stoplight:
            id: zx5bysw4a1y6a
          type: array
          items:
            $ref: '#/components/schemas/UID'
        externalTransactionId:
          type: string
          x-stoplight:
            id: u789js2ftc0i7
        scope:
          $ref: '#/components/schemas/DiscountScopeENUM'
        discountReasonCode:
          type: string
          x-stoplight:
            id: hxqckcytvsqf9
        discountReference:
          type: string
          x-stoplight:
            id: qmpe2uim7xhtv
        createdAt:
          type: string
          x-stoplight:
            id: mujo3j6xwk0m2
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: 6e2gdu4gfbhfa
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 0fzbhpvhz576e
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: 0v0ukkaz68i8g
        campaignUid:
          $ref: '#/components/schemas/OptionalUID'
    DiscountOriginENUM:
      title: DiscountOriginENUM
      type: string
      x-stoplight:
        id: 326tfxh4b1y0a
      enum:
        - LOYALTY
        - MANUAL
        - PRICEREDUCTION
        - CAMPAIGN
    DiscountScopeENUM:
      title: DiscountScopeENUM
      type: string
      x-stoplight:
        id: u7jmxmbywnrms
      enum:
        - WHOLE_ORDER
        - SPECIFIC_LINE
        - PRODUCT_LIST
        - SPECIFIC_LINE_LIST
    StoreCustomerDetailsResponseSchema:
      title: StoreCustomerDetailsResponseSchema
      x-stoplight:
        id: fwbjhq56nu5qx
      type: object
      description: StoreCustomerDetailsResponseSchema
      required:
        - customer
        - credit
      properties:
        customer:
          $ref: '#/components/schemas/CustomerResponseSchema'
        credit:
          $ref: '#/components/schemas/CustomerCreditLimitSchema'
    CustomerCreditLimitSchema:
      title: CustomerCreditLimitSchema
      x-stoplight:
        id: jxwupo3q9i11v
      type: object
      required:
        - approved
        - limit
        - balance
        - remaining
        - maxSingleOrderValue
        - declineReason
      properties:
        approved:
          type: boolean
          x-stoplight:
            id: x75dtea1e0luv
          description: true if credit for customer is granted
        limit:
          type: integer
          x-stoplight:
            id: 25z7u3yywz24s
          description: Granted credit limit
        balance:
          type: integer
          x-stoplight:
            id: jkog5k0bm4bg2
          description: Credit balance. Current total amount of unpaid invoices
        remaining:
          type: integer
          x-stoplight:
            id: ralpjbhe3so1a
          description: Remaining amount of granted credit
        maxSingleOrderValue:
          type: integer
          x-stoplight:
            id: 4isj9aefhjhqd
          description: Maximum amount for a single order
        declineReason:
          type: string
          x-stoplight:
            id: ur3d357g40sjh
          description: Reason why credit is declined
    BankInfoRequestSchema:
      title: BankInfoSchema
      x-stoplight:
        id: eu0l59xeu2l0m
      type: object
      properties:
        accountNumber:
          type: string
          x-stoplight:
            id: yc7kh05noz04q
        bankName:
          type: string
          x-stoplight:
            id: mh3agn93zth58
        iban:
          type: string
          x-stoplight:
            id: 0q0x0lbfkgvro
        swift:
          type: string
          x-stoplight:
            id: fll7dspiqym4f
    BankInfoResponseSchema:
      title: BankInfoResponseSchema
      x-stoplight:
        id: aec6ssuc650n9
      type: object
      required:
        - accountNumber
        - bankName
        - iban
        - swift
      properties:
        accountNumber:
          type: string
        bankName:
          type: string
          x-stoplight:
            id: dipnqxs2su66q
        iban:
          type: string
        swift:
          type: string
    ProductWarrantySchema:
      title: ProductWarranty
      x-stoplight:
        id: vj2fe87sxyr7e
      type: object
      required:
        - productWarrantyUid
        - name
        - terms
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
      properties:
        productWarrantyUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 52yet5e0vrfni
        terms:
          type: string
          x-stoplight:
            id: ezzebnc2d357z
        createdBy:
          type: string
          x-stoplight:
            id: 5v82bolovocnl
        createdAt:
          type: string
          x-stoplight:
            id: x6x2z1m16anci
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: vwux95r39h0d2
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 0hn3f8dkvc6fi
          format: date-time
    TillAppSettingsUpdateSchema:
      title: TillAppSettingsUpdateSchema
      x-stoplight:
        id: cvfhztt3q11xh
      type: object
      description: 'NOTE: This field is deprecated. Printers should be defined on the device'
      deprecated: true
      properties:
        saleStopAtDelivery:
          type: boolean
          x-stoplight:
            id: absyspwp5gsr8
        autoLogout:
          type: integer
          x-stoplight:
            id: 6euiigw9kjaw9
          description: 'time in seconds, 0 = disabled, -1 = inherited from tenant'
        touchMode:
          $ref: '#/components/schemas/TillTouchModeENUM'
    TenantSettingsResponseSchema:
      title: TenantSettings
      x-stoplight:
        id: pm22f8wxsa7aj
      type: object
      required:
        - allowExternalCashDrawer
        - autoLogout
        - autoPrintReceipt
        - numericSkuCounter
        - printCardPaymentDetails
        - sendInvoicesExternally
        - duplicateCheckCustomerPhoneNumber
        - duplicateCheckCustomerVatNumber
        - useOriginalSellerOnCreditLine
        - printReceiptNumber
        - requiredCustomerFields
        - enforceStrongPin
        - customerContactsRequiresEmail
        - customerContactsEmailDuplicateCheck
      properties:
        allowExternalCashDrawer:
          type: boolean
          x-stoplight:
            id: 52jdcwi46fgep
          default: false
        autoLogout:
          type: integer
          x-stoplight:
            id: s4bowxxtvqmnu
          description: 'time in seconds, 0 means not enabled'
        autoPrintReceipt:
          type: boolean
          x-stoplight:
            id: our5utx96v7qb
        numericSkuCounter:
          type: integer
          x-stoplight:
            id: xrvklt88kgapy
        printCardPaymentDetails:
          type: boolean
          description: toogle on/off payment terminal details on receipt
          default: false
        sendInvoicesExternally:
          type: boolean
          x-stoplight:
            id: s3qed4v7gej3u
        duplicateCheckCustomerPhoneNumber:
          type: boolean
          description: 'For PERSON customers: Check for unique phone number and email if true'
        duplicateCheckCustomerVatNumber:
          type: boolean
          description: 'For COMPANY customers: Check for unique vat number if true'
        useOriginalSellerOnCreditLine:
          x-stoplight:
            id: snejivncycdm2
          type: boolean
          description: toogle on/off if the original seller should be used in a existing referenced order
        defaultCustomerGroupUid:
          $ref: '#/components/schemas/OptionalUID'
        printReceiptNumber:
          type: boolean
          x-stoplight:
            id: 86nnoy9ia9wro
        defaultParkedOrderLifespanDays:
          type: integer
          description: Default lifespan in days for parked orders before expiration
          deprecated: true
        autoSendWelcomeSms:
          type: boolean
          x-stoplight:
            id: w1p38zt7av7e0
          deprecated: true
        autoSendWelcomeMail:
          type: boolean
          x-stoplight:
            id: dsgqrqw3te1gv
          deprecated: true
        requirePinCodeForSale:
          type: boolean
          x-stoplight:
            id: yoy1phre22cje
          description: 'description: Turn on/off PIN requirement for sale'
          deprecated: true
        requirePinCodeForCredit:
          type: boolean
          x-stoplight:
            id: vau55y3xm3vwu
          description: 'description: Turn on/off PIN requirement for credit'
          deprecated: true
        requiredCustomerFields:
          type: array
          x-stoplight:
            id: ypv8fdisbnu24
          items:
            $ref: '#/components/schemas/CustomerRequiredFieldENUM'
        enforceStrongPin:
          type: boolean
          x-stoplight:
            id: 3m0y2ogbdh0vo
          description: For user's app PIN/password creation
        customerContactsRequiresEmail:
          type: boolean
          x-stoplight:
            id: mnax97y088eve
          description: Indicate if the customer contacts requires email.
        customerContactsEmailDuplicateCheck:
          type: boolean
          x-stoplight:
            id: mnax97y088eve
          description: |-
            This will enable duplicate check on email
            for contacts, so it is not possible to have two
            contacts with the same email.
    PaymentMethodVisibilityENUM:
      title: PaymentMethodVisibilityENUM
      x-stoplight:
        id: t9jgvr7c5vx07
      type: string
      enum:
        - FEATURED
        - LISTED
        - HIDDEN
        - HIDDEN_WHEN_NOT_REQUIRED
    CampaignCreateRequestSchema:
      title: CampaignCreateRequestSchema
      x-stoplight:
        id: 41lhbt0iqcrxp
      type: object
      required:
        - name
        - displayName
        - validFrom
        - validTo
        - type
        - storeUids
      properties:
        name:
          type: string
        displayName:
          type: string
        validFrom:
          type: string
          format: date-time
        validTo:
          type: string
          x-stoplight:
            id: ukdf9tmccoewv
          format: date-time
        type:
          $ref: '#/components/schemas/CampaignTypeENUM'
        discountType:
          $ref: '#/components/schemas/CampaignDiscountTypeENUM'
        storeUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        quantityThreshold:
          type: integer
          description: |-
            A quantity that qualifies for the campaign to apply.

            If both quantity and amount are set, both criteria must be met.
        amountThreshold:
          type: integer
          description: |-
            An amount that qualifies for the campaign to apply.

            If both quantity and amount are set, both criteria must be met.
        discountAmount:
          type: integer
          description: Discount amount given when the criteria are met.
        discountPercent:
          type: integer
          description: Discount percent given when the criteria are met.
        maxUsage:
          type: integer
          description: The max number of times the campaign can be applied to the order
        pricelistUid:
          $ref: '#/components/schemas/UID'
        priority:
          type: integer
          description: |-
            Priority for the campaign if more than one campaign applies.
            Lower number = higher priority.
        campaignUid:
          $ref: '#/components/schemas/UID'
        campaignCode:
          type: string
          x-stoplight:
            id: itr5ut75spy49
          description: 'If campaignCode is set, it means that this campaign has to be manually actived on an order via PUT on the order'
        preventCombinations:
          type: boolean
          x-stoplight:
            id: 8ajf8oc38b9kr
          description: |-
            Flag to indicate that this campaign should not be combined with other campaigns.
            If any orderlines matches this campaign and priority is set to 1, no other campaigns will be considered.
        customerGroupUid:
          $ref: '#/components/schemas/UID'
    CampaignResponseSchema:
      title: CampaignResponseSchema
      x-stoplight:
        id: 72exxxzg26afs
      type: object
      required:
        - name
        - status
        - displayName
        - validFrom
        - validTo
        - type
        - discountType
        - selection
        - quantityThreshold
        - amountThreshold
        - discountAmount
        - discountPercent
        - maxUsage
        - priority
        - pricelist
        - stores
        - campaignUid
        - campaignCode
        - preventCombinations
        - customerGroup
      properties:
        name:
          type: string
        status:
          $ref: '#/components/schemas/CampaignStatusENUM'
        displayName:
          type: string
        validFrom:
          type: string
          format: date-time
        validTo:
          type: string
          format: date-time
        type:
          $ref: '#/components/schemas/CampaignTypeENUM'
        discountType:
          $ref: '#/components/schemas/CampaignDiscountTypeENUM'
        selection:
          $ref: '#/components/schemas/CampaignSelectionResponseSchema'
        quantityThreshold:
          type: integer
          x-stoplight:
            id: t6i6itd8dczmx
        amountThreshold:
          type: integer
          x-stoplight:
            id: jj5sa87yqthu6
        discountAmount:
          type: integer
          x-stoplight:
            id: rmkvyq3zgpxa5
        discountPercent:
          type: integer
          x-stoplight:
            id: hjnqk4oho0oc2
        maxUsage:
          type: integer
          x-stoplight:
            id: 737cvb8lfq18c
        priority:
          type: integer
          x-stoplight:
            id: wsn5odj0kls01
        pricelist:
          $ref: '#/components/schemas/CampaignPricelistSchema'
        stores:
          type: array
          x-stoplight:
            id: mnxt98t213z4f
          items:
            $ref: '#/components/schemas/CampaignStoreSchema'
        campaignUid:
          $ref: '#/components/schemas/UID'
        campaignCode:
          type: string
          x-stoplight:
            id: tkb5ddkte7pi4
        preventCombinations:
          type: boolean
        customerGroup:
          $ref: '#/components/schemas/CampaignCustomerGroupSchema'
    CampaignProductSelectionSchema:
      title: CampaignProductSelectionSchema
      x-stoplight:
        id: q8a7sh2z7mgm8
      type: object
      description: This section contains all selections done on a campaign
      properties:
        productGroupUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        brandUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        categoryUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        productUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
    CampaignSelectionResponseSchema:
      title: CampaignSelectionResponseSchema
      x-stoplight:
        id: wnnjl6g14mc29
      type: object
      description: Ths section contains all selections done on a campaign
      required:
        - include
        - exclude
      properties:
        include:
          $ref: '#/components/schemas/CampaignProductSelectionResponseSchema'
        exclude:
          $ref: '#/components/schemas/CampaignProductSelectionResponseSchema'
    CampaignProductSelectionResponseSchema:
      title: CampaignSelectionResponseSchema
      x-stoplight:
        id: 8jbxzmyn1sy5x
      type: object
      description: Ths section contains all selections done on a campaign
      required:
        - 'productGroups:'
        - brands
        - categories
        - products
      properties:
        'productGroups:':
          type: array
          items:
            $ref: '#/components/schemas/CampaignProductGroupSchema'
        brands:
          type: array
          items:
            $ref: '#/components/schemas/CampaignBrandSchema'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CampaignCategorySchema'
        products:
          type: array
          items:
            $ref: '#/components/schemas/CampaignProductSchema'
    CampaignStoreSchema:
      title: CampaignStoreSchema
      x-stoplight:
        id: x4lkd4b0lcamh
      type: object
      required:
        - storeUid
        - name
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: yyg02s0q7ckva
      description: This section contains all stores included in a campaign
    CampaignCustomerGroupSchema:
      title: CampaignCustomerGroupSchema
      x-stoplight:
        id: z618n7xervrbj
      type: object
      description: This section contains all stores included in a campaign
      nullable: true
      required:
        - customerGroupUid
        - name
      properties:
        customerGroupUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
    CampaignBrandSchema:
      title: CampaignBrandSchema
      x-stoplight:
        id: eag2hq7itjcbq
      type: object
      required:
        - brandUid
        - name
      properties:
        brandUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
      description: This section contains all brands included in a campaign
    CampaignCategorySchema:
      title: CampaignCategorySchema
      x-stoplight:
        id: lykpu3leam532
      type: object
      description: This section contains all brands included in a campaign
      required:
        - categoryUid
        - name
      properties:
        categoryUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
    CampaignProductGroupSchema:
      title: CampaignProductGroupSchema
      x-stoplight:
        id: ky4n6fv3ic9vz
      type: object
      required:
        - productGroupUid
        - name
      properties:
        productGroupUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
      description: This section contains all product groups included in a campaign
    CampaignProductSchema:
      title: CampaignProductSchema
      x-stoplight:
        id: b229hvzj0u27h
      type: object
      required:
        - productUid
        - name
        - sku
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: zm3ek8dsw20im
        sku:
          type: string
          x-stoplight:
            id: 170bd1dahdd3d
      description: This section contains all individual products included or excluded in a campaign
    CampaignPricelistSchema:
      title: CampaignPricelistSchema
      x-stoplight:
        id: 8vk6xvepgafpe
      type: object
      required:
        - pricelistUid
        - name
      properties:
        pricelistUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
      description: This section contains the pricelist included in a campaign
    CampaignUpdateRequestSchema:
      title: CampaignUpdateRequestSchema
      x-stoplight:
        id: uswm4uzd6picq
      type: object
      description: |-
        This request updates an existing campaign.

        IMPORTANT! The request must include all storeUids the campaign is valid for.
      properties:
        name:
          type: string
        displayName:
          type: string
        status:
          $ref: '#/components/schemas/CampaignStatusENUM'
        validFrom:
          type: string
          format: date-time
        validTo:
          type: string
          format: date-time
        storeUids:
          type: array
          items:
            $ref: '#/components/schemas/UID'
        quantityThreshold:
          type: integer
          x-stoplight:
            id: fexpabee755y2
        amountThreshold:
          type: integer
          x-stoplight:
            id: e28eiecr61qc1
        discountAmount:
          type: integer
          x-stoplight:
            id: pohgan0uviep9
        discountPercent:
          type: integer
          x-stoplight:
            id: xouajs0yrrizw
        maxUsage:
          type: integer
          x-stoplight:
            id: x6adeajfnf49n
        priority:
          type: integer
          x-stoplight:
            id: edjs2ndo7k9dq
        pricelistUid:
          $ref: '#/components/schemas/OptionalUID'
        campaignCode:
          type: string
          x-stoplight:
            id: fw55dnay0rj8t
        discountType:
          $ref: '#/components/schemas/CampaignDiscountTypeENUM'
        preventCombinations:
          type: boolean
        customerGroupUid:
          $ref: '#/components/schemas/OptionalUID'
    CampaignProductSelectionRequestSchema:
      title: CampaignProductSelectionRequestSchema
      x-stoplight:
        id: xodbt01x3rgug
      type: object
      description: |
        This request contains a selection of product groups, brands and exact productUids to include or exclude in a campaign.
      properties:
        include:
          $ref: '#/components/schemas/CampaignProductSelectionSchema'
        exclude:
          $ref: '#/components/schemas/CampaignProductSelectionSchema'
    CampaignSelectionRequestSchema:
      title: CampaignSelectionRequestSchema
      x-stoplight:
        id: 8alg2168i4wgh
      type: object
      description: |-
        This request has 3 sections:

        create: A selection to create in the campaign
        delete: A selection to delete from campaign.
      properties:
        create:
          $ref: '#/components/schemas/CampaignProductSelectionRequestSchema'
        delete:
          $ref: '#/components/schemas/CampaignProductSelectionRequestSchema'
    CampaignDiscountTypeENUM:
      title: CampaignDiscountTypeENUM
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | CHEAPEST_PRODUCT | Cheapest product will be discounted|
        | QUALIFIED_PRODUCT | All qualified products will be discounted|
        | ORDER_DISCOUNT | An order discount will be added to the order|
      enum:
        - CHEAPEST_PRODUCT
        - QUALIFIED_PRODUCT
        - ORDER_DISCOUNT
      type: string
      x-internal: false
      x-tags:
        - ENUM
    CampaignTypeENUM:
      title: CampaignTypeENUM
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | CAMPAIGN | Normal campaign with rules set|
        | PRICELIST | A campaign that includes a pricelist. No rules applies|
      enum:
        - CAMPAIGN
        - PRICELIST
      type: string
      x-internal: false
      x-tags:
        - ENUM
    ProductOnCampaignType:
      title: ProductOnCampaignType
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | INCLUDE | Query for included products in campaign|
        | EXCLUDE | Query for excluded products in campaign|
      enum:
        - INCLUDE
        - EXCLUDE
      type: string
      x-internal: false
      x-tags:
        - ENUM
    SupplierPayoutResponseSchema:
      title: SupplierPayoutResponseSchema
      x-stoplight:
        id: ts76gu796c5vs
      type: object
      required:
        - supplier
        - commissionSales
        - payoutsTotal
        - payoutsCount
      properties:
        supplier:
          $ref: '#/components/schemas/SupplierResponseSchema'
        commissionSales:
          type: array
          x-stoplight:
            id: feh33xtbqnlsn
          items:
            $ref: '#/components/schemas/CommissionSaleResponseSchema'
        payoutsTotal:
          type: integer
          x-stoplight:
            id: gtdxv8t3cqccz
        payoutsCount:
          type: integer
          x-stoplight:
            id: xrtmah89v5qq4
    SupplierPayoutUpdateRequestSchema:
      title: SupplierPayoutUpdateRequestSchema
      x-stoplight:
        id: gjcqzngitr8gv
      type: object
      required:
        - commissionUids
        - paid
      properties:
        commissionUids:
          type: array
          x-stoplight:
            id: 16uen7l73x4uk
          items:
            $ref: '#/components/schemas/UID'
        paid:
          type: boolean
          x-stoplight:
            id: z250pbfu8cs3l
        paidAt:
          type: string
          x-stoplight:
            id: 845vrb8t87wyj
          format: date-time
          description: default is `now`
    SupplierPayoutScopeENUM:
      title: SupplierPayoutFilterENUM
      x-stoplight:
        id: 1vt8rb9ojf9cc
      type: string
      enum:
        - STOCK_ONLY
        - PROVISION_ONLY
    SupplierPayoutListRequestSchema:
      title: SupplierPayoutListRequestSchema
      x-stoplight:
        id: a4k52knzkz398
      type: object
      required:
        - fromDate
        - toDate
      properties:
        fromDate:
          type: string
          x-stoplight:
            id: lof6tqthqyqao
          format: date
          description: GTE
        toDate:
          type: string
          x-stoplight:
            id: 7f5wh94rsdfie
          format: date
          description: LTE
        paid:
          type: boolean
          x-stoplight:
            id: km7hdedh2jx6q
          description: filter on paid/not paid
        supplierUids:
          type: array
          x-stoplight:
            id: zx3vhdg8kok3f
          items:
            $ref: '#/components/schemas/UID'
        productGroupUids:
          type: array
          x-stoplight:
            id: s5p1iyt4qscc6
          items:
            $ref: '#/components/schemas/UID'
        scope:
          $ref: '#/components/schemas/SupplierPayoutScopeENUM'
    CommissionSaleResponseSchema:
      title: CommissionSaleResponseSchema
      x-stoplight:
        id: dwmp2xmz051on
      type: object
      required:
        - payoutAmount
        - paidAt
        - paid
        - commissionPercentage
        - commissionAmount
        - salesPrice
        - productSku
        - productName
        - orderNumber
        - orderSettledAt
        - commissionUid
        - orderProductLineUid
        - orderUid
      properties:
        payoutAmount:
          type: integer
          x-stoplight:
            id: 4g1hy90ert4hs
        paidAt:
          type: string
          x-stoplight:
            id: 7ady170t0ia2u
          format: date-time
        paid:
          type: boolean
          x-stoplight:
            id: y1rk8gy1upds3
        commissionPercentage:
          type: integer
          x-stoplight:
            id: 6rd90w1m6lr3z
        commissionAmount:
          type: integer
          x-stoplight:
            id: v4aeqolr90j8i
        salesPrice:
          type: integer
          x-stoplight:
            id: uum9v7iw2i8pg
          description: copy of LineTotal from OrderProductLine
        productSku:
          type: string
          x-stoplight:
            id: wp5sjfphngsvb
        productName:
          type: string
          x-stoplight:
            id: i4ss6ojkgmz88
        orderNumber:
          type: string
          x-stoplight:
            id: b2s5mg09h0boo
          description: reference to the sales order
        orderSettledAt:
          type: string
          x-stoplight:
            id: gl144p07nb259
          format: date-time
        commissionUid:
          $ref: '#/components/schemas/UID'
        orderProductLineUid:
          $ref: '#/components/schemas/UID'
        orderUid:
          $ref: '#/components/schemas/UID'
    CampaignStatusENUM:
      title: CampaignStatusENUM
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | NEW | Campaign is in a modeling state. Can be modified|
        | ACTIVE | Campaign is active, and is considered when making sales operations. Campaign can not be modified|
        | CLOSED | Campaign is closed.|
      enum:
        - NEW
        - ACTIVE
        - CLOSED
      type: string
      x-internal: false
      x-tags:
        - ENUM
    TillTouchModeENUM:
      title: TillTouchModeENUM
      type: string
      x-stoplight:
        id: qrux4ii4inxfl
      enum:
        - UNAVAILABLE
        - ALWAYS
        - OPTIONAL_ON
        - OPTIONAL_OFF
    EntityTimestampResponseSchema:
      title: EntityTimestampResponseSchema
      x-stoplight:
        id: apgxnm3439i1z
      type: object
      required:
        - store
        - warehouse
        - warehouseAccess
        - brand
        - productProperty
        - productPropertyOption
        - deliveryProvider
        - deliveryMethod
        - timeslot
        - handling
        - handlingAction
        - serviceType
        - serviceStatus
        - hourlyRate
      properties:
        store:
          type: string
          x-stoplight:
            id: 66kss6cne2t97
          format: date-time
        warehouse:
          type: string
          x-stoplight:
            id: w8e1yi0tg7dnz
          format: date-time
        warehouseAccess:
          type: string
          x-stoplight:
            id: j6jhglnpbzlrz
          format: date-time
        brand:
          type: string
          x-stoplight:
            id: iz4mrtwbm02ql
          format: date-time
        productProperty:
          type: string
          x-stoplight:
            id: 16l2vkyaz9t1s
          format: date-time
        productPropertyOption:
          type: string
          x-stoplight:
            id: m8u1s2o5mqavx
          format: date-time
        deliveryProvider:
          type: string
          x-stoplight:
            id: p2tgcmc21vkpd
          format: date-time
        deliveryMethod:
          type: string
          x-stoplight:
            id: cikh4ofifnemi
          format: date-time
        timeslot:
          type: string
          x-stoplight:
            id: yk8gmvk2qlv6z
          format: date-time
        handling:
          type: string
          x-stoplight:
            id: xpb1jr9cy1hza
          format: date-time
        handlingAction:
          type: string
          x-stoplight:
            id: 451fr624lcafu
          format: date-time
        serviceType:
          type: string
          x-stoplight:
            id: jmfpuv6hgim3j
          format: date-time
        serviceStatus:
          type: string
          x-stoplight:
            id: dhoaa6ohj9tdh
          format: date-time
        hourlyRate:
          type: string
          x-stoplight:
            id: c3fcbtfgow7cb
          format: date-time
    PaymentResponseSchema:
      title: PaymentResponseSchema
      x-stoplight:
        id: yxfzsdf8ugyp4
      type: object
      required:
        - paymentUid
        - amount
        - paidAt
        - externalReference
        - paymentSettlementUid
        - createdAt
        - createdBy
      properties:
        paymentUid:
          $ref: '#/components/schemas/UID'
        amount:
          type: integer
          x-stoplight:
            id: 12jfllwwd9e49
        paidAt:
          type: string
          x-stoplight:
            id: vj5reiwba8wo6
          format: date-time
        externalReference:
          type: string
          x-stoplight:
            id: tnbp1gbf4i03x
        paymentSettlementUid:
          $ref: '#/components/schemas/OptionalUID'
        createdAt:
          type: string
          x-stoplight:
            id: 3jkso6i99rrk0
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: u86neg1v2kded
    PaymentBatchRequestSchema:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PaymentBatchSchema'
    PaymentBatchSchema:
      title: PaymentBatchSchema
      x-stoplight:
        id: payment-batch-request-schema
      type: object
      required:
        - storeUid
        - orderUid
        - settlementUid
        - amount
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        orderUid:
          $ref: '#/components/schemas/UID'
        settlementUid:
          $ref: '#/components/schemas/UID'
        amount:
          type: integer
          x-stoplight:
            id: batch-payment-amount
        paidAt:
          type: string
          x-stoplight:
            id: batch-payment-paid-at
          format: date-time
        externalReference:
          type: string
          x-stoplight:
            id: batch-payment-external-ref
        paymentUid:
          $ref: '#/components/schemas/OptionalUID'
    SettlementAdditionalDetailsSchema:
      title: SettlementAdditionalDetailsSchema
      x-stoplight:
        id: 7knb7ea8i8q91
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          x-stoplight:
            id: hqtmbg7w676bv
        value:
          type: string
          x-stoplight:
            id: 92rtu9q446ygd
    AssociatedOrderSchema:
      title: AssociatedOrderSchema
      x-stoplight:
        id: xysqhzw4a8t1g
      type: object
      required:
        - orderUid
        - orderNumber
        - settleState
        - voucherNumber
        - storeUid
        - storeName
        - orderItems
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
          x-stoplight:
            id: p1lthiop6upzu
        settleState:
          $ref: '#/components/schemas/OrderSettleStateENUM'
        voucherNumber:
          type: string
          x-stoplight:
            id: pi8du39mew9lh
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
          x-stoplight:
            id: fgyfyhcga7q8q
        orderItems:
          type: array
          x-stoplight:
            id: wko7puh3qq043
          items:
            $ref: '#/components/schemas/OrderItemResponseSchema'
    LabelENUM:
      type: string
      title: LabelENUM
      x-stoplight:
        id: qwbmtpcpto06u
      enum:
        - 40X50_BARCODE_NAME_SKU
        - 40X50_BARCODE_NAME_SKU_PRICE
        - 40X27_BARCODE_NAME_SKU
        - 40X27_BARCODE_NAME_SKU_PRICE
        - 51X25_BARCODE_NAME_SKU
        - 51X25_BARCODE_NAME_SKU_PRICE
        - 36X20_BARCODE_NAME_SKU
        - 36X20_BARCODE_NAME_SKU_PRICE
    LabelResponseSchema:
      title: LabelResponseSchema
      x-stoplight:
        id: 8nisdfqklm6ji
      type: object
      required:
        - key
        - name
        - size
      properties:
        key:
          $ref: '#/components/schemas/LabelENUM'
        name:
          type: string
          x-stoplight:
            id: y7td2qoz0e2vt
        size:
          $ref: '#/components/schemas/LabelSizeENUM'
    LabelSizeENUM:
      type: string
      title: LabelSizeENUM
      x-stoplight:
        id: pln0fvnxv41az
      enum:
        - 40x50
        - 40x27
        - 36x20
        - 51x25
    AvailableExtensionParameterSchema:
      title: AvailableExtensionParameterSchema
      x-stoplight:
        id: 2yijw0gjfsi0s
      type: object
      required:
        - key
        - type
        - required
      properties:
        key:
          x-stoplight:
            id: ljfvfkd6heqcl
          type: string
        type:
          $ref: '#/components/schemas/ExtensionParameterDataTypeENUM'
        required:
          type: boolean
          x-stoplight:
            id: 5p6cblu7k3ih5
    ExtensionParameterDataTypeENUM:
      type: string
      title: ExtensionParameterDataTypeENUM
      x-stoplight:
        id: hdi9krntvu9ng
      enum:
        - STRING
        - INTEGER
        - DECIMAL
        - BOOLEAN
        - JSON_STRING_ARRAY
      description: JSON_STRING_ARRAY must represent a valid json string array.
    ProductVisibilityENUM:
      type: string
      title: ProductVisibilityENUM
      x-stoplight:
        id: r0jqb9hc02ugp
      enum:
        - ALWAYS_VISIBLE
        - NOT_VISIBLE
    CurrencyDenominationsMetadataSchema:
      title: CurrencyDenominationsSchema
      x-stoplight:
        id: aja90nnzdeq8y
      type: object
      required:
        - coins
        - notes
      properties:
        coins:
          type: array
          x-stoplight:
            id: rv51bzwe5fwes
          items:
            x-stoplight:
              id: ehh06lt1yvm3a
            type: string
        notes:
          type: array
          x-stoplight:
            id: zirgh890g4jc8
          items:
            x-stoplight:
              id: ci4ryg2cikyg5
            type: string
    ProductPackageSlotResponseSchema:
      title: ProductPackageSlotResponseSchema
      x-stoplight:
        id: xsjgb2wwjln9m
      allOf:
        - type: object
          required:
            - productPackageSlotUid
            - name
            - position
            - minComponentsAllowed
            - maxComponentsAllowed
            - normPrice
            - components
          properties:
            productPackageSlotUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: gc5qmhckti5z7
            position:
              type: integer
              x-stoplight:
                id: venie67hyhgub
            minComponentsAllowed:
              type: integer
              x-stoplight:
                id: v0e25gad3p0t6
            maxComponentsAllowed:
              type: integer
              x-stoplight:
                id: oz8cf5e7qg692
            normPrice:
              type: integer
              x-stoplight:
                id: r63squ2rajy5a
            components:
              type: array
              x-stoplight:
                id: n7u5iiawa96wp
              items:
                $ref: '#/components/schemas/ProductPackageComponentSchema'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    CreatedModifiedSchema:
      title: CreatedModifiedSchema
      x-stoplight:
        id: kzypoxkshdmhd
      type: object
      required:
        - createdBy
        - createdAt
        - lastModifiedBy
        - lastModifiedAt
      properties:
        createdBy:
          type: string
          x-stoplight:
            id: gv5cmhfu3lm6g
        createdAt:
          type: string
          x-stoplight:
            id: dr8krt0w4oy4b
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: x72wegzgcz71x
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 1qg5f1ketu5oh
          format: date-time
    ProductPackageComponentSchema:
      title: ProductPackageComponentSchema
      x-stoplight:
        id: atsxsqdw4muq3
      allOf:
        - type: object
          required:
            - productPackageComponentUid
            - product
            - position
            - quantity
            - specialPrice
            - required
          properties:
            productPackageComponentUid:
              $ref: '#/components/schemas/UID'
            product:
              $ref: '#/components/schemas/ProductPackageComponentProductSchema'
            position:
              type: integer
              x-stoplight:
                id: mbokcza9iz3v5
            quantity:
              type: integer
              x-stoplight:
                id: a88ihsmj7xedl
            specialPrice:
              x-stoplight:
                id: 107teebyc7x2s
              type: integer
              nullable: true
            required:
              type: boolean
              x-stoplight:
                id: 04n64kga3670z
            availableStock:
              type: integer
              x-stoplight:
                id: 2sqxfm9gr189s
              deprecated: true
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    ProductPackageComponentProductSchema:
      title: ProductPackageComponentProductSchema
      x-stoplight:
        id: s9m2yopaxsvlj
      type: object
      required:
        - productUid
        - name
        - sku
        - brand
        - description
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 582lb9182x6xk
        sku:
          type: string
          x-stoplight:
            id: uaxtxb17df9xa
        brand:
          type: string
          x-stoplight:
            id: 6mo89henvvdx9
        description:
          type: string
          x-stoplight:
            id: q9uzdiqtai18x
    ArtSupplierReportRequestSchema:
      title: ArtSupplierReportRequestSchema
      x-stoplight:
        id: hxpr765s6amtz
      type: object
      required:
        - fromDate
        - toDate
        - supplierUids
        - sendEmailToSupplier
        - productGroupUids
      properties:
        fromDate:
          type: string
          x-stoplight:
            id: v3k4wm5290jam
          format: date
        toDate:
          type: string
          x-stoplight:
            id: vas76jwl17af0
          format: date
        supplierUids:
          type: array
          x-stoplight:
            id: fvuzvmiovjxj1
          items:
            $ref: '#/components/schemas/UID'
        sendEmailToSupplier:
          type: boolean
          x-stoplight:
            id: dn7ao46yunuwx
        productGroupUids:
          type: array
          x-stoplight:
            id: 9qaokfxf2aqw4
          items:
            $ref: '#/components/schemas/UID'
        showDiff:
          type: boolean
          x-stoplight:
            id: rcqqnyjklspwv
    CustomerCreditSchema:
      title: CustomerCreditSchema
      x-stoplight:
        id: w18bxox8yrlu4
      type: object
      properties:
        limit:
          type: integer
          x-stoplight:
            id: wk0iekt622vjv
          description: Limit 0 = No limit set for customer
    CustomerCreditResponseSchema:
      title: CustomerCreditResponseSchema
      x-stoplight:
        id: yn510i6bcs3ss
      required:
        - limit
        - balance
      properties:
        limit:
          type: integer
          x-stoplight:
            id: k7m8y45clxj5w
        balance:
          type: integer
          x-stoplight:
            id: s0jd8o85094rx
      type: object
    CustomerEhfSchema:
      title: CustomerEhfSchema
      x-stoplight:
        id: 14b7e319b31fb
      type: object
      properties:
        enabled:
          type: boolean
          description: Enable EHF for this customer
        address:
          type: string
          description: The EHF address
    CustomerEhfResponseSchema:
      title: CustomerEhfResponseSchema
      x-stoplight:
        id: c4f27868c49c1
      type: object
      required:
        - enabled
        - address
      properties:
        enabled:
          type: boolean
          description: EHF is enabled for this customer
        address:
          type: string
          description: EHF address
    AccountManagerResponseSchema:
      title: AccountManagerResponseSchema
      x-stoplight:
        id: 1pn4fkyc9wyum
      type: object
      required:
        - tenantUserUid
        - displayName
        - userCode
      properties:
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
        displayName:
          type: string
          x-stoplight:
            id: hq9vilfwz83tn
        userCode:
          type: string
          x-stoplight:
            id: i0mlphmkzuwv7
    AccountManagerRequestSchema:
      title: AccountManagerRequestSchema
      x-stoplight:
        id: 2bswsbxi89lbo
      type: object
      required:
        - tenantUserUid
      properties:
        tenantUserUid:
          $ref: '#/components/schemas/OptionalUID'
    OrderAdditionalNoteResponseSchema:
      title: OrderAdditionalNoteResponseSchema
      x-stoplight:
        id: bjnoxuoftixdg
      allOf:
        - required:
            - orderAdditionalNoteUid
            - note
            - tenantUserUid
            - tenantUserDisplayName
            - notifications
          properties:
            orderAdditionalNoteUid:
              $ref: '#/components/schemas/UID'
            note:
              type: string
              x-stoplight:
                id: k48mr9js46hcm
            tenantUserUid:
              $ref: '#/components/schemas/UID'
            tenantUserDisplayName:
              type: string
              x-stoplight:
                id: rm83dj43xmko2
            notifications:
              type: array
              x-stoplight:
                id: 0votc0ublsd3n
              items:
                $ref: '#/components/schemas/ServiceEventNotificationResponseSchema'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
      type: object
    SimpleNotificationRequestSchema:
      title: SimpleNotificationRequestSchema
      x-stoplight:
        id: hos850c8qb9yc
      type: object
      required:
        - recipient
        - type
      properties:
        recipient:
          type: string
          x-stoplight:
            id: esffv0c9f26bc
        type:
          $ref: '#/components/schemas/MessageTypeENUM'
    TenantAppSettingsResponseSchema:
      title: TenantAppSettingsResponseSchema
      x-stoplight:
        id: uh1baeuwqygtx
      type: object
      required:
        - showOutOfStockWarning
        - defaultParkedOrderLifespanDays
        - requirePinCodeForSale
        - requirePinCodeForCredit
        - autoSendWelcomeSms
        - autoSendWelcomeMail
        - defaultCustomerGroupUid
      properties:
        showOutOfStockWarning:
          type: boolean
          x-stoplight:
            id: rbg4l8ta1l8yv
        defaultParkedOrderLifespanDays:
          type: integer
          x-stoplight:
            id: uur9b0o8ac0eo
        requirePinCodeForSale:
          type: boolean
          x-stoplight:
            id: 9lb34vmnty1zb
        requirePinCodeForCredit:
          type: boolean
          x-stoplight:
            id: tqcnsv4sc4sxp
        autoSendWelcomeSms:
          type: boolean
          x-stoplight:
            id: 36wtq8p156xrd
        autoSendWelcomeMail:
          type: boolean
          x-stoplight:
            id: h67u0ruk3c37l
        defaultCustomerGroupUid:
          $ref: '#/components/schemas/OptionalUID'
    PurchaseOrderCurrencySchema:
      title: PurchaseOrderCurrencySchema
      x-stoplight:
        id: 7z4p5l9gq0s1s
      type: object
      required:
        - code
        - exchangeRate
      properties:
        code:
          type: string
          x-stoplight:
            id: ml70nc6z9eprp
          description: ISO 4217
        exchangeRate:
          type: integer
          x-stoplight:
            id: d07ihy6xaq196
    DeprecatedPurchaseOrderItemCurrencySchema:
      title: DeprecatedPurchaseOrderItemCurrencySchema
      x-stoplight:
        id: j2laqx5p7qhag
      type: object
      deprecated: true
      required:
        - unitPrice
        - discountAmount
        - freightAmount
        - totalLinePrice
      properties:
        unitPrice:
          type: integer
        discountAmount:
          type: integer
        freightAmount:
          type: integer
        totalLinePrice:
          type: integer
    PurchaseOrderItemCurrencySchema:
      title: PurchaseOrderItemCurrencySchema
      x-stoplight:
        id: zdn7qntph2dy2
      type: object
      description: All prices is in the local tenant currency
      required:
        - unitPrice
        - discountAmount
        - freightAmount
        - unitCost
        - totalLinePrice
      properties:
        unitPrice:
          type: integer
          x-stoplight:
            id: 3mkqtiuw7fplk
          description: unitPrice is in local currency before discount
        discountAmount:
          type: integer
          x-stoplight:
            id: a2hrh0q9ru19m
          description: The discount amount pr unit
        freightAmount:
          type: integer
          x-stoplight:
            id: wg9ehg9hal1k9
          description: The portion of the shipping cost for this purchase order line.
        unitCost:
          type: integer
          x-stoplight:
            id: fmv16x0mfpxv3
          description: The price pr unit including discount and freight. This is what will be used as cost price during receivement.
        totalLinePrice:
          type: integer
          x-stoplight:
            id: w9s8odryog3p8
          description: Total price for all the items including discounts and freight amount.
    DeliveryProviderSearchSchema:
      title: DeliveryProviderSearchSchema
      x-stoplight:
        id: mnumcbuownls8
      type: object
      required:
        - uid
      properties:
        uid:
          $ref: '#/components/schemas/UID'
        deliveryProviderMethodUids:
          type: array
          x-stoplight:
            id: sdryqdsbnq2td
          items:
            $ref: '#/components/schemas/UID'
    StoreVisitorResponseSchema:
      title: StoreVisitorResponseSchema
      x-stoplight:
        id: xfad5mqgcq67g
      type: object
      required:
        - storeVisitorUid
        - storeUid
        - dateTime
        - visitorCount
      properties:
        storeVisitorUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        dateTime:
          type: string
          x-stoplight:
            id: p1ngbxu2ai1ik
          format: date-time
        visitorCount:
          type: integer
          x-stoplight:
            id: t50bg2r2oq4tk
    StoreVisitorRequestSchema:
      title: StoreVisitorRequestSchema
      x-stoplight:
        id: 2aapw5tumyy4f
      type: object
      required:
        - fromDateTime
        - toDateTime
        - storeUids
      properties:
        fromDateTime:
          type: string
          x-stoplight:
            id: v0qy7pdm6fvzj
          format: date-time
        toDateTime:
          type: string
          x-stoplight:
            id: ou01fgslinrfm
          format: date-time
        storeUids:
          type: array
          x-stoplight:
            id: sytx13l7yi5rf
          items:
            $ref: '#/components/schemas/UID'
    CompensationUpdateRequestSchema:
      title: CompensationUpdateRequestSchema
      x-stoplight:
        id: bxvbqbqt1yyvl
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: wqwcarrp9gaff
        code:
          type: string
          x-stoplight:
            id: fuhxdg4d9spuq
        RequireReferringOrderLines:
          type: boolean
          x-stoplight:
            id: g9wgty4hhrbb2
          description: 'When an order is marked with a compensation with this field set to true, the order must have order lines referring to a settled sale'
    CompensationCreateRequestSchema:
      title: CompensationCreateRequestSchema
      x-stoplight:
        id: v6u69nu4orgyt
      type: object
      required:
        - name
        - code
      properties:
        name:
          type: string
        code:
          type: string
        compensationUid:
          $ref: '#/components/schemas/UID'
    CompensationResponseSchema:
      title: CompensationResponseSchema
      x-stoplight:
        id: 18cz7btdgs3ak
      type: object
      required:
        - name
        - code
        - compensationUid
      properties:
        name:
          type: string
        code:
          type: string
        compensationUid:
          $ref: '#/components/schemas/UID'
    CompensationReasonUpdateRequestSchema:
      title: CompensationReasonUpdateRequestSchema
      x-stoplight:
        id: l5s4c6wu5i1c4
      type: object
      description: |
        productUid refers to the product that is added to an order when this compensation reason is added to the order.
        limit is the amount of total compensations on an order. Returns a warning if limit is exceeded.
      properties:
        reason:
          type: string
          x-stoplight:
            id: 138u8w22qqg91
        code:
          type: string
          x-stoplight:
            id: jylaaxk1hmsoc
        productUid:
          $ref: '#/components/schemas/OptionalUID'
        limit:
          type: integer
          x-stoplight:
            id: 06rotwvl9heq5
        requireDocumentation:
          type: boolean
          x-stoplight:
            id: mpv23kmbuowk5
    CompensationReasonCreateRequestSchema:
      title: CompensationReasonCreateRequestSchema
      x-stoplight:
        id: xb1ai7ho29fut
      type: object
      description: |
        productUid refers to the product that is added to an order when this compensation reason is added to the order.
        limit is the amount of total compensations on an order. Returns a warning if limit is exceeded.
      required:
        - reason
        - code
        - productUid
        - limit
        - requireDocumentation
      properties:
        reason:
          type: string
        code:
          type: string
        productUid:
          $ref: '#/components/schemas/OptionalUID'
        limit:
          type: integer
        requireDocumentation:
          type: boolean
          x-stoplight:
            id: mmfhbmbjqimn5
        compensationReasonUid:
          type: string
          x-stoplight:
            id: m2xdfwvtvabpe
    CompensationReasonResponseSchema:
      title: CompensationReasonResponseSchema
      x-stoplight:
        id: upiityq025xer
      type: object
      description: |
        productUid refers to the product that is added to an order when this compensation reason is added to the order.
        limit is the amount of total compensations on an order. Returns a warning if limit is exceeded.
      required:
        - reason
        - code
        - productUid
        - limit
        - requireDocumentation
        - compensationReasonUid
      properties:
        reason:
          type: string
        code:
          type: string
        productUid:
          $ref: '#/components/schemas/OptionalUID'
        limit:
          type: integer
        requireDocumentation:
          type: boolean
          x-stoplight:
            id: 2skput2r55k7u
        compensationReasonUid:
          type: string
    ExternalReportUrlResponseSchema:
      title: ExternalReportUrlResponseSchema
      x-stoplight:
        id: zh3icgsxbrxh7
      type: object
      required:
        - name
        - url
      properties:
        name:
          type: string
          x-stoplight:
            id: 8enamowbuhi5p
        url:
          type: string
          x-stoplight:
            id: i76zzkxkfdoyw
          format: uri
    RMAOrderCreateRequestSchema:
      title: RMAOrderCreateRequestSchema
      x-stoplight:
        id: woij1az2ur8za
      type: object
      required:
        - storeUid
        - supplierUid
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        supplierUid:
          $ref: '#/components/schemas/UID'
        note:
          type: string
          x-stoplight:
            id: q1it3c1z1fdgg
        supplierReference:
          type: string
          x-stoplight:
            id: rnk1l8x2rrpap
        ourReference:
          type: string
          x-stoplight:
            id: xy9ivbr3n0thq
        reason:
          type: string
          x-stoplight:
            id: 5ld4oi1afrxen
        rmaOrderUid:
          $ref: '#/components/schemas/UID'
    RMAOrderUpdateRequestSchema:
      title: RMAOrderUpdateRequestSchema
      x-stoplight:
        id: 41b7qjiciv1ot
      type: object
      properties:
        note:
          type: string
        supplierReference:
          type: string
        ourReference:
          type: string
        reason:
          type: string
        status:
          $ref: '#/components/schemas/RMAOrderStatusRequestENUM'
    RMAOrderItemResponseSchema:
      title: RMAOrderItemResponseSchema
      x-stoplight:
        id: 9sjb0m1k5h21f
      type: object
      required:
        - requestedQuantity
        - productUid
        - sku
        - name
        - supplierSku
        - serialNumber
        - requestedUnitPrice
        - requestedLinePrice
        - note
        - warehouseUid
        - createdAt
        - lastModifiedAt
        - createdBy
        - lastModifiedBy
        - rmaOrderItemUid
        - serviceOrderUid
        - originalPurchaseNumber
        - supplierReferenceNumber
      properties:
        requestedQuantity:
          type: integer
          x-stoplight:
            id: 68slt3pezrahu
        productUid:
          $ref: '#/components/schemas/UID'
        sku:
          x-stoplight:
            id: 0q0msw88l91bh
          type: string
        name:
          x-stoplight:
            id: vlfqu6zu7to1g
          type: string
        supplierSku:
          x-stoplight:
            id: d8g8rtiyzvkpm
          type: string
        serialNumber:
          type: string
          x-stoplight:
            id: 9xhtcd75uhtj9
        requestedUnitPrice:
          type: integer
          x-stoplight:
            id: dwdfy25pv9zo5
        requestedLinePrice:
          type: integer
          x-stoplight:
            id: xw465l2b7yuhp
        note:
          type: string
          x-stoplight:
            id: kw8o33f2q6aqt
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        createdAt:
          type: string
          x-stoplight:
            id: 0ge2ab4hw13ly
          format: date-time
        lastModifiedAt:
          type: string
          x-stoplight:
            id: 09ihwmpalp1kc
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: gc3f9qlxz282b
        lastModifiedBy:
          type: string
          x-stoplight:
            id: ewdt3wi33w4xb
        rmaOrderItemUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/OptionalUID'
        originalPurchaseNumber:
          type: string
          x-stoplight:
            id: n599831t8agnb
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: 1cfdtdd1u9wjk
          description: from the original purchase order
    RMAOrderItemCreateRequestSchema:
      title: RMAOrderItemCreateRequestSchema
      x-stoplight:
        id: ejhbx7jlm1qj3
      type: object
      required:
        - requestedQuantity
        - requestedUnitPrice
        - productUid
      properties:
        requestedQuantity:
          type: integer
        requestedUnitPrice:
          type: integer
        productUid:
          $ref: '#/components/schemas/UID'
        serialNumber:
          type: string
        note:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/UID'
        rmaOrderItemUid:
          $ref: '#/components/schemas/UID'
        originalPurchaseNumber:
          type: string
          x-stoplight:
            id: jpil19l7nztor
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: h9nr0fwmh1svy
          description: from the original purchase order
    RMAOrderResponseSchema:
      title: RMAOrderResponseSchema
      x-stoplight:
        id: 87859fya4l9oz
      type: object
      required:
        - note
        - storeUid
        - storeName
        - supplierUid
        - supplierName
        - supplierReference
        - ourReference
        - reason
        - status
        - rmaNumber
        - items
        - createdAt
        - lastModifiedAt
        - createdBy
        - lastModifiedBy
        - sentToSupplierAt
        - rmaOrderUid
      properties:
        note:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        supplierUid:
          $ref: '#/components/schemas/UID'
        supplierName:
          x-stoplight:
            id: of9r65f4q9d78
          type: string
        originalPurchaseNumber:
          type: string
          deprecated: true
        supplierReference:
          type: string
        ourReference:
          type: string
        reason:
          type: string
        status:
          $ref: '#/components/schemas/RMAOrderStatusResponseENUM'
        rmaNumber:
          type: string
        items:
          type: array
          x-stoplight:
            id: dcn04qnkjt922
          items:
            $ref: '#/components/schemas/RMAOrderItemResponseSchema'
        createdAt:
          type: string
          x-stoplight:
            id: b5bht8hbq5rx0
          format: date-time
        lastModifiedAt:
          type: string
          x-stoplight:
            id: z5umizxgkiida
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: o13jcqw5ccz7z
        lastModifiedBy:
          type: string
          x-stoplight:
            id: eyd60d3nuesnp
        sentToSupplierAt:
          type: string
          x-stoplight:
            id: 3z10bhc7f6nxn
          nullable: true
        rmaOrderUid:
          $ref: '#/components/schemas/UID'
    RMAOrderItemUpdateRequestSchema:
      title: RMAOrderItemUpdateRequestSchema
      x-stoplight:
        id: my72fl4kwrfh3
      type: object
      properties:
        requestedQuantity:
          type: integer
        requestedUnitPrice:
          type: integer
        serialNumber:
          type: string
        note:
          type: string
        warehouseUid:
          $ref: '#/components/schemas/OptionalUID'
        originalPurchaseNumber:
          type: string
          x-stoplight:
            id: imnqcmwxvhta4
        supplierReferenceNumber:
          type: string
          x-stoplight:
            id: 7s2lrxjbarpgd
          description: from the original purchase order
    AssetCreateRequestSchema:
      title: AssetCreateRequestSchema
      x-stoplight:
        id: fxomjh98spjin
      type: object
      required:
        - name
        - category
      properties:
        name:
          type: string
          x-stoplight:
            id: zh9frv09o853l
        category:
          $ref: '#/components/schemas/AssetCategoryENUM'
        description:
          type: string
          x-stoplight:
            id: gidz3fw1ih7ll
        isPublic:
          type: boolean
          x-stoplight:
            id: 1ta3wjgzzeqct
          default: false
        url:
          type: string
          x-stoplight:
            id: nqmvqb9fs0lv0
          description: for self-hosted asset
        assetUid:
          $ref: '#/components/schemas/OptionalUID'
        serviceOrderUids:
          x-stoplight:
            id: 43nmwf1amtex4
          type: array
          items:
            $ref: '#/components/schemas/UID'
    AssetUpdateRequestSchema:
      title: AssetUpdateRequestSchema
      x-stoplight:
        id: q77nqorg5fngu
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: vcsi6a5tcml31
        category:
          $ref: '#/components/schemas/AssetCategoryENUM'
        description:
          type: string
          x-stoplight:
            id: xzzqv5yswuy3e
        isPublic:
          type: boolean
          x-stoplight:
            id: huxnomzbsa29w
        url:
          type: string
          x-stoplight:
            id: z9w23gmlf3i4i
          description: for self-hosted asset
        serviceOrderUids:
          x-stoplight:
            id: mx3ngb7og0shw
          type: array
          items:
            $ref: '#/components/schemas/UID'
    AssetUrlSchema:
      title: AssetUrlSchema
      x-stoplight:
        id: gadtgmnjcx24i
      type: object
      required:
        - url
        - assetUid
      properties:
        url:
          type: string
          x-stoplight:
            id: quy8c0g9wm0qc
        assetUid:
          $ref: '#/components/schemas/UID'
    TenantAssetSchema:
      title: TenantAssetSchema
      x-stoplight:
        id: bzql9f6p5yjvt
      type: object
      required:
        - logo
        - splash
      properties:
        logo:
          $ref: '#/components/schemas/AssetUrlSchema'
        splash:
          $ref: '#/components/schemas/AssetUrlSchema'
    GeneralParameterResponseSchema:
      title: GeneralParameterResponseSchema
      x-stoplight:
        id: dzdfl03rd5j0p
      type: object
      required:
        - key
        - value
        - type
        - allowedValues
        - validationRegex
        - name
        - required
      properties:
        key:
          type: string
          x-stoplight:
            id: 1zywg8yw5ct29
        value:
          type: string
          x-stoplight:
            id: mnju2p85vtvtg
        type:
          $ref: '#/components/schemas/GeneralParameterTypeENUM'
        allowedValues:
          type: array
          x-stoplight:
            id: 7dl4ylx3asp56
          items:
            x-stoplight:
              id: vkur0jgx8xi9m
            type: string
        validationRegex:
          type: string
          x-stoplight:
            id: ysjd7cled23z0
        name:
          type: string
          x-stoplight:
            id: ufkykut68fsg4
        required:
          type: boolean
          x-stoplight:
            id: r4ys3yisqyoip
    GeneralParameterTypeENUM:
      title: GeneralSettingTypeENUM
      x-stoplight:
        id: lsahlzk8kqu3f
      type: string
      enum:
        - STRING
        - PASSWORD
        - INTEGER
        - DECIMAL
        - BOOL
        - ENUM
      description: |-
        | Type | Description |
        |--|--|
        |BOOL | Booleans will be the string `true` or `false` |
        |DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |
        |ENUM| The enum value should be one of the values listed in `allowedValues` |
        |PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |
    GiftcardExtensionENUM:
      title: GiftcardExtensionENUM
      x-stoplight:
        id: 6sq1lvbnijep0
      type: string
      enum:
        - FLOWGIFTCARD
        - STORE_CREDIT
        - PAYEX_GIFTCARD
    ReceiptResponseSchema:
      title: ReceiptResponseSchema
      type: object
      required:
        - storeUid
        - orderUid
        - orderReceiptUid
        - settleState
        - voucherNumber
        - externalVoucherNumber
        - sellerDisplayName
        - settledAt
        - deliveryState
        - grandTotal
        - settlementTotals
        - settlements
        - items
        - address
        - customerUid
        - note
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        orderUid:
          $ref: '#/components/schemas/UID'
        orderReceiptUid:
          $ref: '#/components/schemas/UID'
        settleState:
          $ref: '#/components/schemas/ReceiptStateENUM'
        voucherNumber:
          type: string
        externalVoucherNumber:
          type: string
          x-stoplight:
            id: omqafr4icgnct
        sellerDisplayName:
          type: string
        settledAt:
          type: string
          format: date-time
        deliveryState:
          $ref: '#/components/schemas/OrderDeliveryStateENUM'
        grandTotal:
          type: integer
        settlementTotals:
          $ref: '#/components/schemas/OrderSettlementTotalsSchema'
        settlements:
          type: array
          x-stoplight:
            id: q8onnjcph76ux
          items:
            $ref: '#/components/schemas/SettlementResponseSchema'
        items:
          type: array
          x-stoplight:
            id: rxcy0gy1bdp3u
          items:
            $ref: '#/components/schemas/OrderItemResponseSchema'
        address:
          $ref: '#/components/schemas/OrderAddressResponseSchema'
        customerUid:
          $ref: '#/components/schemas/OptionalUID'
        note:
          type: string
          x-stoplight:
            id: bzjvhag83s9mb
    LimitToStoreUidsSchema:
      title: LimitToStoreUidsSchema
      x-stoplight:
        id: foexr9w7yda1c
      type: array
      description: Limit the product to be used for a list of storeUids.
      items:
        $ref: '#/components/schemas/UID'
    DeviceTokenRequestSchema:
      title: DeviceTokenRequestSchema
      x-stoplight:
        id: y92c0q474kon5
      type: object
      required:
        - appId
        - refreshToken
      properties:
        appId:
          type: string
          x-stoplight:
            id: hpwqcz1mbwmlh
          description: This is a predefined app id that Flow will provide
        refreshToken:
          type: string
          x-stoplight:
            id: mmt9dckldxg64
          description: Refresh token that is supplied during client linking
    DeviceLinkResponseSchema:
      title: DeviceLinkResponseSchema
      x-stoplight:
        id: jy4w3d0paz5tf
      type: object
      required:
        - expires
        - token
        - refreshToken
      properties:
        expires:
          type: integer
          description: The expiry time represented as a unix timestamp.
        token:
          type: string
          description: A JWT device token
        refreshToken:
          type: string
          description: Refresh token to be used to renew the token
          x-stoplight:
            id: m84n4he6qzpv2
    DeviceTillResponseSchema:
      title: DeviceTillResponseSchema
      x-stoplight:
        id: fiiqwo2376gv7
      type: object
      nullable: true
      required:
        - tillUid
        - name
        - tillNumber
      properties:
        tillUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: onw1zkcw6j9d1
        tillNumber:
          type: integer
          x-stoplight:
            id: 4p5wajkfwzbhd
    DeviceAppCodeENUM:
      title: DeviceAppCodeENUM
      x-stoplight:
        id: dup8pi7rnd98d
      type: string
      enum:
        - CLIENT
        - ASSISTANT
        - UNKNOWN
      description: |-
        | Enum | Description |
        |---|----|
        | CLIENT | Flow Retail Client |
        | ASSISTANT | Flow Retail Assistant |
        | UNKNOWN | No specific app |
    SalesReservationTypeENUM:
      title: SalesReservationTypeENUM
      x-stoplight:
        id: 2mr1f5kdnxo5j
      type: string
      enum:
        - NONE
        - WAREHOUSE
        - PURCHASEORDER
        - REQUEST_PURCHASEORDER
        - PURCHASEORDER_CONFIRMED
      description: ''
    SalesReservationDetailsSchema:
      title: SalesReservationDetailsSchema
      x-stoplight:
        id: t5nn1hf2f47sv
      type: object
      properties:
        warehouse:
          $ref: '#/components/schemas/SalesReservationWarehouseSchema'
        purchaseOrder:
          $ref: '#/components/schemas/SalesReservationPurchaseOrderSchema'
        receivement:
          $ref: '#/components/schemas/SalesReservationReceivementSchema'
    SalesReservationWarehouseSchema:
      title: SalesReservationWarehouseSchema
      x-stoplight:
        id: 8amv9cqg6srl5
      type: object
      nullable: true
      required:
        - warehouseName
      properties:
        warehouseName:
          type: string
          x-stoplight:
            id: uuov1oz2gr9hy
    SalesReservationPurchaseOrderSchema:
      title: SalesReservationPurchaseOrderSchema
      x-stoplight:
        id: doxxyldabesla
      type: object
      nullable: true
      required:
        - purchaseOrderUid
        - purchaseOrderItemUid
        - purchaseOrderNumber
        - quantityOrdered
      properties:
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        expectedDeliveryDate:
          type: string
          x-stoplight:
            id: dhrzxvcv10nx0
          format: date-time
        purchaseOrderNumber:
          type: string
          x-stoplight:
            id: r8ma2i53je7aq
        quantityOrdered:
          type: integer
          x-stoplight:
            id: n49duzo071xit
          description: The quantity ordered on this purchase order line.
        externalId:
          type: string
    OrderItemReservationSchema:
      title: OrderItemReservationSchema
      x-stoplight:
        id: 1kd3uyj1ccfx7
      type: object
      required:
        - orderUid
        - orderItemUid
        - orderNumber
        - quantity
        - reservationType
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderItemUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
          x-stoplight:
            id: k33vds7vabxgr
        quantity:
          type: integer
          x-stoplight:
            id: 6g9kp32gze0cl
        reservationType:
          $ref: '#/components/schemas/SalesReservationTypeENUM'
    TimezoneTYPE:
      title: Timezone
      x-stoplight:
        id: subczvtk9btcq
      type: string
      description: 'The timezone in tz/zoneinfo format. Example: Europe/Oslo'
    CustomerGroupResponseSchema:
      title: CustomerGroupResponseSchema
      x-stoplight:
        id: ylyex6v1turo1
      allOf:
        - type: object
          required:
            - customerGroupUid
            - name
          properties:
            customerGroupUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: cd3h4p3ta0ucq
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    ExternalSystemCodeENUM:
      title: ExternalSystemCodeENUM
      type: string
      x-stoplight:
        id: tak4to7swcldf
      enum:
        - OMNIUM
        - ORDER_IMPORT
        - PROFRAKT
    GeneralMappingCreateRequestSchema:
      title: GeneralMappingCreateRequestSchema
      x-stoplight:
        id: iasubbzaelp7f
      type: object
      required:
        - externalId
        - systemCode
      properties:
        externalId:
          type: string
          x-stoplight:
            id: ohkru4f353czz
        systemCode:
          $ref: '#/components/schemas/ExternalSystemCodeENUM'
    GeneralMappingUpdateRequestSchema:
      title: GeneralMappingUpdateRequestSchema
      x-stoplight:
        id: ge8mz37u4q71i
      type: object
      required:
        - externalId
      properties:
        externalId:
          type: string
    GeneralMappingResponseSchema:
      title: GeneralMappingResponseSchema
      x-stoplight:
        id: ai1cxwiuqopot
      type: object
      required:
        - systemCode
        - externalId
      properties:
        systemCode:
          $ref: '#/components/schemas/ExternalSystemCodeENUM'
        externalId:
          type: string
    DeliveryProviderMethodMappingResponseSchema:
      title: DeliveryProviderMethodMappingResponseSchema
      x-stoplight:
        id: 56woxjunbeqdt
      allOf:
        - $ref: '#/components/schemas/GeneralMappingResponseSchema'
        - type: object
          x-stoplight:
            id: 8aofifzy2e4yp
          required:
            - deliveryProviderMethodMappingUid
          properties:
            deliveryProviderMethodMappingUid:
              $ref: '#/components/schemas/UID'
    TenantPaymentMethodMappingResponseSchema:
      title: TenantPaymentMethodMappingResponseSchema
      x-stoplight:
        id: 7smpslgp1awz5
      allOf:
        - $ref: '#/components/schemas/GeneralMappingResponseSchema'
        - type: object
          x-stoplight:
            id: qp51ewcvkxerh
          required:
            - tenantPaymentMethodMappingUid
          properties:
            tenantPaymentMethodMappingUid:
              type: string
              x-stoplight:
                id: h7mdqowy9pkde
    DeliverySourcingRequestSchema:
      title: DeliverySourcingRequestSchema
      x-stoplight:
        id: lnmkmjrzib75t
      type: object
      required:
        - productUids
      properties:
        productUids:
          type: array
          x-stoplight:
            id: 8ayf3q49lqg0h
          items:
            $ref: '#/components/schemas/UID'
    DeliverySourcingItemResponse:
      title: DeliverySourcingItemResponse
      x-stoplight:
        id: k6r170g7h9vdk
      type: object
      required:
        - productUid
        - sourceId
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        sourceId:
          type: string
          x-stoplight:
            id: sntkoeybnuiw2
    DeliverySourcingResponseSchema:
      title: DeliverySourcingResponseSchema
      x-stoplight:
        id: rm5em9z44p644
      type: object
      required:
        - items
      properties:
        items:
          type: array
          x-stoplight:
            id: uzlm42v93acc8
          items:
            $ref: '#/components/schemas/DeliverySourcingItemResponse'
    DeliveryOptionRequestSchema:
      title: DeliveryOptionRequestSchema
      x-stoplight:
        id: bnwqkar9wq93m
      type: object
      required:
        - startDate
        - endDate
        - postalCode
        - products
      properties:
        startDate:
          type: string
          x-stoplight:
            id: 3p5fsokq7emt2
          format: date
        endDate:
          type: string
          x-stoplight:
            id: gxfthygps9sva
          format: date
        postalCode:
          type: string
          x-stoplight:
            id: xamcm5jb6c909
        products:
          type: array
          x-stoplight:
            id: qqk2zyq1hacw9
          items:
            $ref: '#/components/schemas/DeliveryOptionProductSchema'
    DeliveryOptionSchema:
      title: DeliveryOptionSchema
      x-stoplight:
        id: 2l3svoy047vw0
      type: object
      required:
        - freightProductUid
        - freightProductName
        - deliveryProviderProcessIndicator
        - pickupDelivery
        - addressDelivery
        - parcelDelivery
      properties:
        freightProductUid:
          $ref: '#/components/schemas/UID'
        freightProductName:
          type: string
          x-stoplight:
            id: lbq4tf6t7353w
        deliveryProviderProcessIndicator:
          type: string
          x-stoplight:
            id: evnogeksy4kwn
          description: This field can contain a special code that needs to be saved on the delivery
        pickupDelivery:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryOptionPickupPointSchema'
        addressDelivery:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryOptionAddressSchema'
        parcelDelivery:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryOptionParcelSchema'
    DeliveryOptionResponseSchema:
      title: DeliveryOptionResponseSchema
      x-stoplight:
        id: iymi8d17qzczw
      type: object
      required:
        - deliveryOptions
        - information
        - errors
      properties:
        deliveryOptions:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryOptionSchema'
        information:
          type: array
          x-stoplight:
            id: 90fs1rqtt4lrz
          items:
            x-stoplight:
              id: g3t5pruiyn63z
            type: string
        errors:
          type: array
          x-stoplight:
            id: jrn9cnmz39yyu
          description: Errors which causes the delivery to not be available
          items:
            x-stoplight:
              id: 77r912zt5kq5u
            type: string
    DeliveryOptionPickupPointSchema:
      title: DeliveryOptionPickupPointSchema
      x-stoplight:
        id: v7wtf8h4sjszx
      type: object
      required:
        - pickupPointType
        - pickupPointId
        - name
        - latitude
        - longitude
        - address
        - postalCode
        - city
        - countryCode
        - description
        - price
        - deliveryDate
      properties:
        pickupPointType:
          type: string
          x-stoplight:
            id: 92hpi59he77iz
        pickupPointId:
          type: string
          x-stoplight:
            id: 30v3esesp8kwg
        name:
          type: string
          x-stoplight:
            id: de20uh4krcte6
        latitude:
          type: string
          x-stoplight:
            id: w6mi4r4ygl2bj
        longitude:
          type: string
          x-stoplight:
            id: e67kqv8tdw1dj
        address:
          type: string
        postalCode:
          type: string
          x-stoplight:
            id: dxmol59rt3yxe
        city:
          type: string
          x-stoplight:
            id: kzjgt5rhb1db8
        countryCode:
          type: string
          x-stoplight:
            id: 4g26yw1ycyfr3
        description:
          type: string
          x-stoplight:
            id: nrh1xe21vlq6v
        price:
          type: integer
          x-stoplight:
            id: z8s6vrponq80y
        deliveryDate:
          type: string
          x-stoplight:
            id: 73iizhbu5vhmd
          format: date
          description: Estimated arrival date
    DeliveryOptionAddressSchema:
      title: DeliveryOptionAddressSchema
      x-stoplight:
        id: 1x80xa38t5yjm
      type: object
      required:
        - deliveryDate
        - startTime
        - endTime
        - price
      properties:
        deliveryDate:
          type: string
          format: date
          x-stoplight:
            id: 1kku39htz6m8p
          description: Estimated arrival date
        startTime:
          type: string
        endTime:
          type: string
        price:
          type: integer
    DeliveryOptionParcelSchema:
      title: DeliveryOptionParcelSchema
      x-stoplight:
        id: 7dkdrn3z91s74
      type: object
      required:
        - deliveryDate
        - price
      properties:
        deliveryDate:
          type: string
          x-stoplight:
            id: mowuek7fnoskw
          format: date
          description: Estimated arrival date
        price:
          type: integer
          x-stoplight:
            id: fslqaepm10w94
    CampaignSearchRequestSchema:
      title: CampaignSearchRequestSchema
      x-stoplight:
        id: 89b6do3tziwcg
      type: object
      properties:
        query:
          type: string
          x-stoplight:
            id: nz20lvczjowh6
        campaignCode:
          type: string
          x-stoplight:
            id: t6aqn1roz26kt
        discountType:
          $ref: '#/components/schemas/CampaignDiscountTypeENUM'
        displayName:
          type: string
          x-stoplight:
            id: lx9icliv1vpc5
        name:
          type: string
          x-stoplight:
            id: a6lk7gqdbfsuv
        type:
          $ref: '#/components/schemas/CampaignTypeENUM'
        validFrom:
          type: string
          x-stoplight:
            id: phy5za9wjdoo3
          format: date-time
        validTo:
          type: string
          x-stoplight:
            id: mxuq3b2tew8y6
          format: date-time
        storeUids:
          type: array
          x-stoplight:
            id: t4l2xe8o9nj66
          items:
            $ref: '#/components/schemas/UID'
        statuses:
          type: array
          x-stoplight:
            id: 8is4bt2buj4gz
          items:
            $ref: '#/components/schemas/CampaignStatusENUM'
    PrinterTypeENUM:
      title: PrinterTypeENUM
      x-stoplight:
        id: ycpysnm6w2scn
      type: string
      enum:
        - LABEL
        - RECEIPT
        - GENERAL
    PrinterResponseSchema:
      title: PrinterResponseSchema
      x-stoplight:
        id: 95aer2qh5r7v9
      allOf:
        - type: object
          required:
            - printerUid
            - deviceUids
            - storeUid
            - name
            - description
            - type
            - path
            - settings
            - availablePrintActions
          properties:
            printerUid:
              $ref: '#/components/schemas/UID'
            deviceUids:
              x-stoplight:
                id: zahgnpaxpzfsp
              type: array
              items:
                $ref: '#/components/schemas/UID'
            storeUid:
              $ref: '#/components/schemas/OptionalUID'
            name:
              type: string
              x-stoplight:
                id: 3hrk1hybgjf5y
            description:
              type: string
              x-stoplight:
                id: htgvlkeqtqbie
            type:
              $ref: '#/components/schemas/PrinterTypeENUM'
            path:
              type: string
              x-stoplight:
                id: 9v2r6zcv17sij
            settings:
              type: array
              x-stoplight:
                id: 2f2zbkxxsbjaq
              items:
                $ref: '#/components/schemas/GeneralParameterResponseSchema'
            availablePrintActions:
              type: array
              description: 'Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).'
              x-stoplight:
                id: w8n3k2p9q1vms
              items:
                $ref: '#/components/schemas/AvailablePrintActionENUM'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    PrinterUpdateRequestSchema:
      title: PrinterUpdateRequestSchema
      x-stoplight:
        id: ijf23u5c6mmeu
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/OptionalNullableUID'
        type:
          $ref: '#/components/schemas/PrinterTypeENUM'
        path:
          type: string
          x-stoplight:
            id: 7u00v0mp7pv78
        name:
          type: string
          x-stoplight:
            id: ljdduofe61499
        description:
          type: string
          x-stoplight:
            id: jtqhvmmr08tpa
        settings:
          type: array
          x-stoplight:
            id: lbmkx89i466ki
          items:
            $ref: '#/components/schemas/GeneralParameterRequestSchema'
        availablePrintActions:
          type: array
          description: 'Optional on update. Which print job types this printer can handle; effective values are reflected on printer responses (see [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM)). When sent, an empty array means no categorized print types are configured for this printer (if the backend allows that).'
          x-stoplight:
            id: m4j7h2k9nq1vpx
          items:
            $ref: '#/components/schemas/AvailablePrintActionENUM'
    TenantCurrencySchema:
      title: TenantCurrencySchema
      x-stoplight:
        id: qf14g777kjmjx
      type: object
      required:
        - code
        - name
        - symbol
        - symbolPosition
        - decimalSeparator
        - thousandSeparator
        - cashRounding
      properties:
        code:
          type: string
          x-stoplight:
            id: gifbh1du5pdgf
          description: ISO 4217
        name:
          type: string
          x-stoplight:
            id: ymq30qzewfsaw
        symbol:
          type: string
          x-stoplight:
            id: 859gka1ae5ddt
          description: 'symbol or short name, e.g. `$`, `kr` etc. '
        symbolPosition:
          type: string
          x-stoplight:
            id: qy9gj2dzid1gm
          description: prefix or suffix to the amount
        decimalSeparator:
          type: string
          x-stoplight:
            id: wtcirt3j2leem
        thousandSeparator:
          type: string
          x-stoplight:
            id: dj6ei5eqyg9b5
        cashRounding:
          type: integer
          x-stoplight:
            id: oofy8fevfg7tt
          description: the smallest amount accepted as cash
    PriceBrandResponseSchema:
      title: PriceBrandResponseSchema
      x-stoplight:
        id: kqc4yqdrcznht
      type: object
      required:
        - brandUid
        - name
      properties:
        brandUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 8nd0d6ioife6u
    PriceProductGroupResponseSchema:
      title: PriceProductGroupResponseSchema
      x-stoplight:
        id: 50a3dq4d13a2o
      type: object
      required:
        - productGroupUid
        - name
        - path
      properties:
        productGroupUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: t2ar2quw38bnj
        path:
          type: array
          x-stoplight:
            id: utfr8lf3cb4f0
          items:
            $ref: '#/components/schemas/ProductGroupPathSchema'
    PurchaseRequestProductSchema:
      title: PurchaseRequestProductSchema
      x-stoplight:
        id: gfwpoh355i3qz
      type: object
      required:
        - productUid
        - sku
        - productName
        - totalQuantityOrdered
        - oldestOrderCreatedAt
        - suppliers
        - orders
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        sku:
          type: string
          x-stoplight:
            id: u6kra7wn6zmhu
        productName:
          type: string
          x-stoplight:
            id: mdpx1hr907pgs
        totalQuantityOrdered:
          type: integer
          x-stoplight:
            id: xodj52hfywd1e
          description: total quantity in order lines
        oldestOrderCreatedAt:
          type: string
          x-stoplight:
            id: g8f201d2osfxc
          format: date-time
          description: the oldest createdAt in order lines
        suppliers:
          type: array
          x-stoplight:
            id: hhqxn426u17mn
          items:
            $ref: '#/components/schemas/PurchaseRequestSupplierSchema'
        orders:
          type: array
          x-stoplight:
            id: 7nu0pws1vpm3c
          items:
            $ref: '#/components/schemas/PurchaseRequestOrderSchema'
    PurchaseRequestSupplierSchema:
      title: PurchaseRequestSupplierSchema
      x-stoplight:
        id: 3vn6xhq0bniav
      type: object
      required:
        - supplierUid
        - name
      properties:
        supplierUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 2xv7k6zb2od3o
    BasicPrinterResponseSchema:
      title: BasicPrinterResponseSchema
      x-stoplight:
        id: bwbcmjv6ujtc8
      type: object
      required:
        - printerUid
        - name
        - type
        - availablePrintActions
      properties:
        printerUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: 00plyenzdnpv1
        type:
          $ref: '#/components/schemas/PrinterTypeENUM'
        availablePrintActions:
          type: array
          description: 'Which print job types this printer supports. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).'
          x-stoplight:
            id: r9k2n5v8m1qwsd
          items:
            $ref: '#/components/schemas/AvailablePrintActionENUM'
    PurchaseRequestOrderSchema:
      title: PurchaseRequestOrderSchema
      x-stoplight:
        id: 5e73snyt2fkr7
      type: object
      required:
        - orderUid
        - orderNumber
        - orderState
        - settleState
        - customerDisplayName
        - storeUid
        - storeName
        - items
        - createdAt
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
          x-stoplight:
            id: arga1cct3gv5b
        orderState:
          $ref: '#/components/schemas/OrderOrderStateENUM'
        settleState:
          $ref: '#/components/schemas/OrderSettleStateENUM'
        customerDisplayName:
          type: string
          x-stoplight:
            id: mxjjfag8lotec
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        items:
          type: array
          x-stoplight:
            id: od9rlpsazlssr
          items:
            $ref: '#/components/schemas/PurchaseRequestOrderItemSchema'
        createdAt:
          type: string
          x-stoplight:
            id: st0b77qx7ugfr
          format: date-time
      description: ''
    PurchaseRequestOrderGroupSchema:
      title: PurchaseRequestOrderGroupSchema
      x-stoplight:
        id: vksvnj20m0r9k
      type: object
      required:
        - orderUid
        - orderNumber
        - orderState
        - settleState
        - customerDisplayName
        - storeUid
        - storeName
        - items
        - createdAt
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
        orderState:
          $ref: '#/components/schemas/OrderOrderStateENUM'
        settleState:
          $ref: '#/components/schemas/OrderSettleStateENUM'
        customerDisplayName:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseRequestOrderItemGroupByOrderSchema'
        createdAt:
          type: string
          format: date-time
    ExtendedGiftcardExtensionCodeENUM:
      title: ExtendedGiftcardExtensionCodeENUM
      x-stoplight:
        id: 77wq7i6oiae6a
      type: string
      enum:
        - FLOWGIFTCARD
        - STORE_CREDIT
        - BRITANNIA
        - PAYEX_GIFTCARD
    OrderItemAddonResponseSchema:
      title: OrderItemAddonResponseSchema
      x-stoplight:
        id: 1fhi226309fey
      type: object
      required:
        - productUid
        - productLinkType
        - sku
        - name
        - price
        - productType
        - serialNoRequired
        - allowSale
        - allowSaleDate
        - coverImage
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        productLinkType:
          $ref: '#/components/schemas/ProductLinkTypeENUM'
        sku:
          type: string
          x-stoplight:
            id: a24nzp8bjplyt
        name:
          type: string
          x-stoplight:
            id: fflyhtz8fl7ob
        price:
          type: integer
          x-stoplight:
            id: 7yhm568zvn98q
        productType:
          $ref: '#/components/schemas/ProductTypeENUM'
        serialNoRequired:
          $ref: '#/components/schemas/SerialNoRequiredENUM'
        allowSale:
          $ref: '#/components/schemas/AllowSaleENUM'
        allowSaleDate:
          type: string
          format: date-time
          x-stoplight:
            id: iaaj6xs9iht6j
        coverImage:
          $ref: '#/components/schemas/CoverImageSchema'
    ReceiptCreateRequestSchema:
      title: ReceiptCreateRequestSchema
      x-stoplight:
        id: 2l1h41yfoacp4
      type: object
      properties:
        orderItemUids:
          type: array
          x-stoplight:
            id: t82mxof8yfl9w
          items:
            $ref: '#/components/schemas/UID'
        settlementUids:
          type: array
          x-stoplight:
            id: ovvshmzam8j9b
          items:
            $ref: '#/components/schemas/UID'
        orderReceiptUid:
          $ref: '#/components/schemas/UID'
    ReceiptUpdateRequestSchema:
      title: ReceiptUpdateRequestSchema
      x-stoplight:
        id: jrog08ru5xnkb
      type: object
      properties:
        externalVoucherNumber:
          type: string
          x-stoplight:
            id: oen6540n1rlre
    PurchaseRequestOrderItemSchema:
      title: PurchaseRequestOrderItemSchema
      x-stoplight:
        id: 5q52a99rtmpe6
      type: object
      required:
        - orderItemUid
        - sortOrder
        - quantityOrdered
        - note
      properties:
        orderItemUid:
          $ref: '#/components/schemas/UID'
        sortOrder:
          type: integer
          x-stoplight:
            id: ngygqxk5vlgxh
        quantityOrdered:
          type: integer
          x-stoplight:
            id: h67cneal7iq5u
        note:
          type: string
          x-stoplight:
            id: 1tmc1ekthp69v
    PurchaseRequestOrderItemGroupByOrderSchema:
      title: PurchaseRequestOrderItemGroupByOrderSchema
      x-stoplight:
        id: nisxfw5pprp65
      type: object
      required:
        - orderItemUid
        - sortOrder
        - quantityOrdered
        - note
        - sku
        - productName
        - productUid
        - suppliers
      properties:
        orderItemUid:
          $ref: '#/components/schemas/UID'
        sortOrder:
          type: integer
        quantityOrdered:
          type: integer
        note:
          type: string
        sku:
          type: string
          x-stoplight:
            id: 2zckleepnq9ld
        productName:
          type: string
          x-stoplight:
            id: y987l2ywjtsst
        productUid:
          $ref: '#/components/schemas/UID'
        suppliers:
          type: array
          x-stoplight:
            id: 3vqsgi6gbnxax
          items:
            $ref: '#/components/schemas/PurchaseRequestSupplierSchema'
    DateTimeRangeSchema:
      title: DateTimeRangeSchema
      x-stoplight:
        id: vcqugi9n22mcs
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          x-stoplight:
            id: 6dgikessnu6gq
          format: date-time
        to:
          type: string
          x-stoplight:
            id: nm5yk9lx64yyt
          format: date-time
    AmountRangeSchema:
      title: AmountRangeSchema
      x-stoplight:
        id: amr1tzfkxad001
      type: object
      description: Search for an amount range
      required:
        - from
        - to
      properties:
        from:
          type: integer
          x-stoplight:
            id: amr1tzfkxad002
        to:
          type: integer
          x-stoplight:
            id: amr1tzfkxad003
    OrderItemsReservationUpdateSchema:
      title: OrderItemsReservationUpdateSchema
      type: object
      required:
        - reservationType
        - orders
      properties:
        uid:
          description: 'The uid must be warehouseUid if the reservationType is `WAREHOUSE`, purchaseOrderItemUid if it is `PURCHASEORDER` and receivementItemUid if it is `PURCHASEORDER_CONFIRMED`'
          $ref: '#/components/schemas/UID'
        reservationType:
          type: string
          enum:
            - WAREHOUSE
            - PURCHASEORDER
            - PURCHASEORDER_CONFIRMED
        orders:
          description: A list of all the orders with order items that should be marked as ready for delivery
          type: array
          x-stoplight:
            id: e7c0pdcv0mcn2
          items:
            $ref: '#/components/schemas/OrderItemUpdateReservationSchema'
      description: |-
        If reservationType == WAREHOUSE, uid must have a value pointing to a legal warehouseUid.
        If reservationType == PURCHASE, uid must have a value pointing to a legal purchase order.
    OrderItemUpdateReservationSchema:
      title: OrderItemUpdateReservationSchema
      x-stoplight:
        id: i65tfcynsamih
      type: object
      required:
        - orderUid
        - orderItemUid
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderItemUid:
          $ref: '#/components/schemas/UID'
    DeviceSearchRequestSchema:
      title: DeviceSearchRequestSchema
      x-stoplight:
        id: mqtsyrpg7m1nx
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: aliajch5tklwu
        deviceIdentifier:
          $ref: '#/components/schemas/OptionalUID'
        query:
          type: string
          x-stoplight:
            id: 92z8i65zf7vbp
        appCode:
          $ref: '#/components/schemas/DeviceAppCodeENUM'
        statuses:
          x-stoplight:
            id: ui7vpf6vd498j
          type: array
          items:
            $ref: '#/components/schemas/DeviceStatusENUM'
    PrinterRequestSearchSchema:
      title: PrinterRequestSearchSchema
      x-stoplight:
        id: pyddhiag14mnk
      type: object
      properties:
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        printerType:
          $ref: '#/components/schemas/PrinterTypeENUM'
        query:
          type: string
          x-stoplight:
            id: o0jtoiei8q793
          description: Partial or full printer name search
    PurchaseOrderItemUpdateQtyDeliveredSchema:
      title: PurchaseOrderItemUpdateQtyDeliveredSchema
      x-stoplight:
        id: xhsnmoog2ltpc
      type: object
      description: |-
        Partial line updates on PUT purchase order: received quantity, expected delivery,
        unit price, and/or ordered quantity. Does not adjust stock except via receivement when quantityReceived is set.
      required:
        - purchaseOrderItemUid
      properties:
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        quantityReceived:
          type: integer
          x-stoplight:
            id: 46v1u0ls3u5zk
        expectedDeliveryDate:
          type: string
          x-stoplight:
            id: a5g1cu5h2751c
          format: date
        unitPrice:
          type: integer
          x-stoplight:
            id: wlcvhbnkz02d9
        quantityOrdered:
          type: integer
          x-stoplight:
            id: qo-po-item-put-update
          description: New ordered quantity for this line (same unit as on create).
    ServiceOrderAssetResponse:
      title: ServiceOrderAssetResponse
      x-stoplight:
        id: n4nytesiaemub
      type: object
      required:
        - assetUid
        - name
        - description
        - isPublic
        - publicUrl
        - mimeType
      properties:
        assetUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: jjhq801naelns
        description:
          type: string
          x-stoplight:
            id: kbh1475fqfnfb
        isPublic:
          type: boolean
          x-stoplight:
            id: 36rnssia54hrp
          description: For private assets use download endpoint to get signed access.
        publicUrl:
          type: string
          x-stoplight:
            id: ldu0sj62cr040
        mimeType:
          type: string
          x-stoplight:
            id: joz5m4xmmdf9k
    ReceiptReportSchema:
      title: ReceiptReportSchema
      x-stoplight:
        id: 3ud1hhsaxjk8r
      type: object
      required:
        - settledAt
      properties:
        storeUids:
          type: array
          x-stoplight:
            id: zhan4xwwzssmt
          items:
            $ref: '#/components/schemas/UID'
        settledAt:
          $ref: '#/components/schemas/DateTimeRangeSchema'
    DownloadableFile:
      title: DownloadableFile
      x-stoplight:
        id: 0t2973jlxieht
      type: string
      format: binary
    GiftcardStatusENUM:
      title: GiftcardStatusENUM
      x-stoplight:
        id: vfge0w9g1e9q2
      type: string
      enum:
        - ACTIVE
        - INACTIVE
        - CLEARED
      description: '`CLEARED` means the card balance is emptied, the card is deactivated and can not be used anymore.'
    CurrencyPurchasePriceUpdateSchema:
      title: CurrencyPurchasePriceUpdateSchema
      x-stoplight:
        id: czdog5vrcvyca
      type: object
      required:
        - purchasePrice
        - currencyCode
      properties:
        purchasePrice:
          type: integer
          x-stoplight:
            id: qfk6su1ag4k98
        currencyCode:
          type: string
          x-stoplight:
            id: 4zxxvyi9nzxpo
      description: Purchase price in currency. The information here will be used to calculate the purchase price in local currency and update the `purchasePrice` field.
    EhfInvoiceResponseSchema:
      title: EhfInvoiceResponseSchema
      x-stoplight:
        id: cy6znq7mxbo8r
      type: object
      required:
        - voucherNumber
        - orderUid
        - orderNumber
        - orderSettlementUid
        - statusOk
        - statusAt
        - statusMessage
      properties:
        voucherNumber:
          type: string
          x-stoplight:
            id: vupfuoi16zdh5
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
          x-stoplight:
            id: mqupm39tc1ag7
        orderSettlementUid:
          $ref: '#/components/schemas/UID'
        statusOk:
          x-stoplight:
            id: bvg1jxkdj7b8d
          type: boolean
        statusAt:
          type: string
          x-stoplight:
            id: k1vwfwzezazn6
          format: date-time
        statusMessage:
          type: string
          x-stoplight:
            id: x1vncut7odxgp
    MetadataTemplateSchema:
      title: TemplateMetadataSchema
      x-stoplight:
        id: lhcirza6u8hrd
      type: object
      required:
        - type
        - name
        - template
        - mimeType
        - fields
      properties:
        type:
          type: string
          x-stoplight:
            id: 2f1hbpmwndk6y
          example: SMS_PICKUP_NOTE
        name:
          type: string
          x-stoplight:
            id: nzww9e9u6gp1a
          example: SMS pickup note
        template:
          type: string
          x-stoplight:
            id: vtt42hsln5bjj
          example: 'Your order {.orderNumber} is ready to be picked up in {.storeName}'
        mimeType:
          $ref: '#/components/schemas/TemplateMimeType'
        fields:
          type: array
          x-stoplight:
            id: iosbevmgp2k6s
          items:
            $ref: '#/components/schemas/MetadataTemplateFieldSchema'
    MetadataTemplateFieldSchema:
      title: MetadataTemplateFieldSchema
      x-stoplight:
        id: 9a0kmnosilsfv
      type: object
      required:
        - name
        - description
      properties:
        name:
          type: string
          x-stoplight:
            id: fxiak9i8h72lp
          example: .orderNumber
        description:
          type: string
          x-stoplight:
            id: 0z44f7emayx2c
          example: The ordernumber on the order
    TransactionTemplateResponseSchema:
      title: TransactionTemplateResponseSchema
      x-stoplight:
        id: r3zd3r3dr9px7
      type: object
      required:
        - type
        - name
        - template
        - subject
        - mimeType
        - templateUid
        - createdAt
        - createdBy
        - lastModifiedAt
        - lastModifiedBy
      properties:
        type:
          type: string
          x-stoplight:
            id: cd78pxd3g8m8e
          example: SMS_PICKUP_NOTE
        name:
          type: string
          x-stoplight:
            id: gxd37qdnt45vy
          example: SMS pickup note
        template:
          type: string
          x-stoplight:
            id: y17mvix0m7jbq
          example: 'Your order {.orderNumber} is ready to be picked up in {.storeName}'
          description: The template body.
        subject:
          type: string
          x-stoplight:
            id: 7tegetszz9zhd
          description: 'The template subject, used for emails'
        mimeType:
          $ref: '#/components/schemas/TemplateMimeType'
        templateUid:
          $ref: '#/components/schemas/OptionalUID'
        createdAt:
          type: string
          x-stoplight:
            id: vddkxfac88bai
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: ptslue6j5dbd0
        lastModifiedAt:
          type: string
          x-stoplight:
            id: xhdr3daxt3m4p
          format: date-time
        lastModifiedBy:
          type: string
          x-stoplight:
            id: e5uyvftzherra
    AssociatedTimeslotSchema:
      title: AssociatedTimeslotSchema
      x-stoplight:
        id: bf8h7go3ijqv4
      type: object
      required:
        - deliveryProviderMethodTimeslotUid
        - name
      properties:
        deliveryProviderMethodTimeslotUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: zs2l8wk7cxrkx
    TransactionTemplateRequestSchema:
      title: TransactionTemplateRequestSchema
      x-stoplight:
        id: 46c6zpuuhte6x
      type: object
      description: TransactionTemplateRequestSchema
      required:
        - type
        - template
      properties:
        type:
          type: string
          x-stoplight:
            id: gknow0aepssnm
          example: SMS_PICKUP_NOTE
          description: This must be a valid type from /metadata/templates
        template:
          type: string
          x-stoplight:
            id: 28rh7tvm1y9mc
          example: 'Your order {.orderNumber} is ready to be picked up in {.storeName}'
        subject:
          type: string
          x-stoplight:
            id: asnrat2nivj39
        templateUid:
          $ref: '#/components/schemas/UID'
    TransactionTemplateUpdateSchema:
      title: TransactionTemplateUpdateSchema
      x-stoplight:
        id: gkrs0v6fzwnem
      type: object
      required:
        - template
      properties:
        template:
          type: string
          x-stoplight:
            id: z7vjgj25qpk2f
          example: 'Your order {.orderNumber} is ready to be picked up in {.storeName}'
        subject:
          type: string
          x-stoplight:
            id: hn4y14jcklmf7
    ReceiptEmailTypeENUM:
      description: |
        |ENUM      | Description |
        | ---------------- | ------------ |
        | RECEIPT | Send sales receipt as email|
      minLength: 1
      title: ReceiptEmailTypeENUM
      type: string
      x-internal: false
      x-tags:
        - ENUM
      enum:
        - RECEIPT
    ReceiptEmailSchema:
      title: ReceiptEmailSchema
      x-stoplight:
        id: 0948dklcst3fk
      type: object
      required:
        - type
        - email
      properties:
        type:
          $ref: '#/components/schemas/ReceiptEmailTypeENUM'
        email:
          $ref: '#/components/schemas/EmailTYPE'
      description: ReceiptEmailSchema
    StoreProductSOADetailsSchema:
      title: StoreProductSOADetailsSchema
      x-stoplight:
        id: lqg4yqr0mg0cj
      type: object
      required:
        - soaUid
        - soaName
        - amount
        - fromDateTime
        - toDateTime
        - soaAmountUid
      properties:
        soaUid:
          $ref: '#/components/schemas/UID'
        soaName:
          type: string
          x-stoplight:
            id: prd4lbwoc7wec
        amount:
          type: integer
          x-stoplight:
            id: oxay3ngbjog7b
        fromDateTime:
          type: string
          x-stoplight:
            id: b7oaoctgvbmrx
          format: date-time
        toDateTime:
          type: string
          x-stoplight:
            id: ki2qcc4rklsw2
          format: date-time
        soaAmountUid:
          $ref: '#/components/schemas/UID'
    TemplateMimeType:
      title: TemplateMimeType
      x-stoplight:
        id: vw3kmbpcexm27
      enum:
        - HTML
        - TEXT
      description: ''
    TenantUserStatusENUM:
      title: TenantUserStatusENUM
      x-stoplight:
        id: tjy1cw6jtjfzd
      enum:
        - PENDING_INVITE
        - ACTIVE
        - INACTIVE
      type: string
    TenantUserSearchSchema:
      title: TenantUserSearchSchema
      x-stoplight:
        id: efjcfjvmcb0nt
      type: object
      properties:
        query:
          type: string
          x-stoplight:
            id: 7us13isk7rfkk
          description: 'Fuzzy search on displayname, firstname, lastname, mobile, email and userCode'
        userCode:
          type: string
          x-stoplight:
            id: 9j1bozesh3kzd
          description: Exact match search.
        email:
          type: string
          x-stoplight:
            id: u2enm5x9a2jfq
          description: Exact match search.
        mobile:
          type: string
          x-stoplight:
            id: 0w055r4swcatl
          description: Exact match search.
        status:
          type: array
          x-stoplight:
            id: 9amw2xj4fc5p3
          items:
            $ref: '#/components/schemas/TenantUserStatusENUM'
    CustomerCreateConsentSchema:
      title: CustomerCreateConsentSchema
      x-stoplight:
        id: f0kgz4j5fafcx
      allOf:
        - $ref: '#/components/schemas/CustomerConsentChangeSchema'
        - type: object
          x-stoplight:
            id: 90fitl01c7kiy
          required:
            - consentUid
          properties:
            consentUid:
              $ref: '#/components/schemas/UID'
    OrderIntakeRequestSchema:
      title: OrderIntakeRequestSchema
      x-stoplight:
        id: zh9zrb77axg2a
      type: object
      required:
        - orderDate
      properties:
        orderDate:
          $ref: '#/components/schemas/DateTimeRangeSchema'
        storeUids:
          type: array
          x-stoplight:
            id: 1dctzgmcvavbl
          items:
            $ref: '#/components/schemas/UID'
        orderStates:
          type: array
          x-stoplight:
            id: 4sot50g702uz4
          items:
            $ref: '#/components/schemas/OrderOrderStateENUM'
    OrderIntakeResponseSchema:
      title: OrderIntakeResponseSchema
      x-stoplight:
        id: 2791badh7udyt
      type: object
      required:
        - items
      properties:
        items:
          type: array
          x-stoplight:
            id: att8fy7nlldkx
          items:
            $ref: '#/components/schemas/OrderIntakeItemResponseSchema'
    OrderIntakeItemResponseSchema:
      title: OrderIntakeItemResponseSchema
      x-stoplight:
        id: 18fuphhrkfv2p
      type: object
      required:
        - orderUid
        - orderNumber
        - orderDate
        - orderState
        - customerName
        - store
        - createdBy
        - orderTotal
      properties:
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
        orderDate:
          type: string
          format: date-time
        orderState:
          $ref: '#/components/schemas/OrderOrderStateENUM'
        customerName:
          type: string
        store:
          $ref: '#/components/schemas/OrderIntakeStoreResponseSchema'
        createdBy:
          type: string
        orderTotal:
          type: integer
    PermissionMetadataResponseSchema:
      title: PermissionMetadataResponseSchema
      x-stoplight:
        id: 6g5nma2wkwmjt
      type: object
      description: PermissionMetadataResponseSchema
      required:
        - permission
        - description
        - roleTypes
      properties:
        permission:
          type: string
          x-stoplight:
            id: d3uf4544zy1eo
        description:
          type: string
          x-stoplight:
            id: ab6lg6zub36tu
        roleTypes:
          type: array
          x-stoplight:
            id: flald28wy85ur
          items:
            $ref: '#/components/schemas/PermissionLevelENUM'
    PermissionLevelENUM:
      title: PermissionLevelENUM
      x-stoplight:
        id: l1egstd8fqdh5
      enum:
        - TENANT
        - STORE
      type: string
    TenantRoleCreateRequestSchema:
      title: TenantRoleCreateRequestSchema
      x-stoplight:
        id: 6yx1urqhoob56
      type: object
      required:
        - name
        - description
        - permissions
      properties:
        name:
          type: string
          x-stoplight:
            id: vso1i8w0nn9j2
        description:
          type: string
          x-stoplight:
            id: 9jkvdcfzu4kgf
        externalId:
          type: string
          x-stoplight:
            id: yrxhdelrj5upo
        permissions:
          type: array
          x-stoplight:
            id: 9hl6m7oxlz9ng
          items:
            x-stoplight:
              id: yl8ottj6mop5n
            type: string
        tenantRoleUid:
          $ref: '#/components/schemas/UID'
    TenantRoleResponseSchema:
      title: TenantRoleResponseSchema
      x-stoplight:
        id: 9apahog4pw938
      type: object
      required:
        - name
        - description
        - externalId
        - permissions
        - tenantRoleUid
        - isSystemRole
      properties:
        name:
          type: string
        description:
          type: string
        externalId:
          type: string
          x-stoplight:
            id: m34ebvodrwosr
        permissions:
          type: array
          items:
            type: string
        tenantRoleUid:
          $ref: '#/components/schemas/UID'
        isSystemRole:
          type: boolean
          x-stoplight:
            id: 7qxbj2lk879ac
    TenantRoleUpdateRequestSchema:
      title: TenantRoleUpdateRequestSchema
      x-stoplight:
        id: qqszuxjat9w2d
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        externalId:
          type: string
          x-stoplight:
            id: mde9685kjg7iy
        permissions:
          type: array
          items:
            type: string
    CustomerLoyaltyPointResponseSchema:
      title: CustomerLoyaltyPointResponseSchema
      x-stoplight:
        id: fooul9205t255
      type: object
      required:
        - customerUid
        - balance
        - currency
        - expiringBalance
        - expirationDate
      properties:
        customerUid:
          $ref: '#/components/schemas/UID'
        balance:
          type: integer
          x-stoplight:
            id: 8qmmq3rsknqbm
        currency:
          type: string
          x-stoplight:
            id: m6cy1f4er14v3
        expiringBalance:
          type: integer
          x-stoplight:
            id: vf2y6xb7fiy5l
        expirationDate:
          type: string
          x-stoplight:
            id: 5lkunvs2lozp2
          format: date-time
    OrderLoyaltyPointResponseSchema:
      title: OrderLoyaltyPointResponseSchema
      x-stoplight:
        id: tl28xua1fvxe5
      type: object
      required:
        - balance
      properties:
        balance:
          type: integer
    ProfraktDeliveryMethodsListSchema:
      title: ProfraktDeliveryMethodsListSchema
      x-stoplight:
        id: 170t5pgh2k8e5
      type: object
      required:
        - profraktIdentifier
        - name
      properties:
        profraktIdentifier:
          type: string
          x-stoplight:
            id: d1lb33ckhs7wr
        name:
          type: string
          x-stoplight:
            id: kbalurmrjzckb
    OrderProfraktDeliveryRequestSchema:
      title: OrderProfraktDeliveryRequestSchema
      x-stoplight:
        id: 9uawvqv0cg1as
      type: object
      properties:
        autoPrint:
          type: boolean
          x-stoplight:
            id: 1zr5hhmm3o6y1
    OrderDeliveryTimeslotResponseSchema:
      title: OrderDeliveryTimeslotResponseSchema
      x-stoplight:
        id: xxcnwqh5ahziv
      type: object
      required:
        - name
        - fromTime
        - toTime
      properties:
        name:
          type: string
          x-stoplight:
            id: qeh8zeki08wps
        fromTime:
          type: string
          x-stoplight:
            id: eugm1wzi2y1ro
          format: time
        toTime:
          type: string
          x-stoplight:
            id: dx6o454devskv
          format: time
    DeprecatedOrderDeliveryTimeslotResponseSchema:
      deprecated: true
      title: DeprecatedOrderDeliveryTimeslotResponseSchema
      x-stoplight:
        id: xxcnwqh5ahziv
      type: object
      required:
        - name
        - fromTime
        - toTime
      properties:
        name:
          type: string
          x-stoplight:
            id: qeh8zeki08wps
        fromTime:
          type: string
          x-stoplight:
            id: eugm1wzi2y1ro
          format: time
        toTime:
          type: string
          x-stoplight:
            id: dx6o454devskv
          format: time
    OrderDeliveryTimeslotRequestSchema:
      title: OrderDeliveryTimeslotRequestSchema
      x-stoplight:
        id: fi9eu9rqb7cvf
      type: object
      nullable: true
      required:
        - fromTime
        - toTime
      properties:
        fromTime:
          type: string
          format: time
        toTime:
          type: string
          format: time
    StorePrinterCreateRequestSchema:
      title: StorePrinterCreateRequestSchema
      x-stoplight:
        id: 505f5pkurdyrr
      type: object
      required:
        - printerUid
        - eventType
      properties:
        printerUid:
          $ref: '#/components/schemas/UID'
        eventType:
          $ref: '#/components/schemas/StorePrinterEventTypeENUM'
        storePrinterUid:
          $ref: '#/components/schemas/UID'
    StorePrinterUpdateRequestSchema:
      title: StorePrinterUpdateRequestSchema
      x-stoplight:
        id: 86fyixdz67err
      type: object
      properties:
        printerUid:
          $ref: '#/components/schemas/UID'
        eventType:
          $ref: '#/components/schemas/StorePrinterEventTypeENUM'
    StorePrinterResponseSchema:
      title: StorePrinterResponseSchema
      x-stoplight:
        id: zqbzsl3lpezma
      type: object
      required:
        - store
        - printer
        - eventType
        - storePrinterUid
      properties:
        store:
          $ref: '#/components/schemas/BasicStoreResponseSchema'
        printer:
          $ref: '#/components/schemas/BasicPrinterResponseSchema'
        eventType:
          $ref: '#/components/schemas/StorePrinterEventTypeENUM'
        storePrinterUid:
          $ref: '#/components/schemas/UID'
    StorePrinterEventTypeENUM:
      title: StorePrinterEventTypeENUM
      x-stoplight:
        id: 5iwwnsvg2q76g
      type: string
      enum:
        - PICKUP_LABEL
    DeprecatedOrderDeliveryTimeslotRequestSchema:
      deprecated: true
      title: OrderDeliveryTimeslotRequestSchema
      x-stoplight:
        id: fi9eu9rqb7cvf
      type: object
      nullable: true
      required:
        - fromTime
        - toTime
      properties:
        fromTime:
          type: string
          format: time
        toTime:
          type: string
          format: time
    OpenItemsReportResponseSchema:
      title: OpenItemsReportResponseSchema
      x-stoplight:
        id: rmcntcwy6mt7t
      type: object
      properties:
        items:
          type: array
          x-stoplight:
            id: nhidha57g6di0
          items:
            $ref: '#/components/schemas/OpenItemsSchema'
    OpenItemsSchema:
      title: OpenItemsSchema
      x-stoplight:
        id: 5ogd581d2zi7x
      type: object
      required:
        - store
        - customer
        - orderUid
        - orderNumber
        - voucherNumber
        - settlementUid
        - settlementCode
        - settledAt
        - amount
        - dueDate
        - dueAmount
      properties:
        store:
          $ref: '#/components/schemas/OpenItemsStoreSchema'
        customer:
          $ref: '#/components/schemas/OpenItemsCustomerSchema'
        orderUid:
          $ref: '#/components/schemas/UID'
        orderNumber:
          type: string
          x-stoplight:
            id: ngm5f4b7xjpd8
        voucherNumber:
          type: string
          x-stoplight:
            id: p6991qi2pqe7i
        settlementUid:
          $ref: '#/components/schemas/UID'
        settlementCode:
          x-stoplight:
            id: joxmsgivf231q
          type: string
        settledAt:
          type: string
          x-stoplight:
            id: 3xv31vcssezph
          format: date-time
        amount:
          type: integer
          x-stoplight:
            id: exrm79k6yzfxw
        dueDate:
          type: string
          x-stoplight:
            id: fgrpvwy78zn55
          format: date
        dueAmount:
          type: integer
          x-stoplight:
            id: mxm7pji94jmtl
    OpenItemsCustomerSchema:
      title: OpenItemsCustomerSchema
      x-stoplight:
        id: rhu0aozwh2ef8
      type: object
      required:
        - customerUid
        - displayName
        - ledgerNumber
      properties:
        customerUid:
          $ref: '#/components/schemas/UID'
        displayName:
          type: string
          x-stoplight:
            id: bfbjofoba25fs
        ledgerNumber:
          type: string
          x-stoplight:
            id: 68bpg5hnwkngn
    OpenItemsStoreSchema:
      title: OpenItemsStoreSchema
      x-stoplight:
        id: 1igoxr3n858ki
      type: object
      required:
        - storeUid
        - name
        - vatNumber
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: fkwdgo2o189sm
        vatNumber:
          type: string
          x-stoplight:
            id: 158kp8ujwuwf2
    OrderDeliveryPickupPointResponseSchema:
      title: OrderDeliveryPickupPointResponseSchema
      x-stoplight:
        id: t9yzgtu4cgy79
      type: object
      required:
        - pickupPointId
        - pickupPointType
        - name
        - address
        - postalCode
        - city
        - countryCode
      properties:
        pickupPointId:
          type: string
          x-stoplight:
            id: 0ah4w7ld4j683
        pickupPointType:
          type: string
          x-stoplight:
            id: sh4y4iv09hbfq
        name:
          type: string
          x-stoplight:
            id: rmgn6wzptwc7l
        address:
          type: string
          x-stoplight:
            id: vs0cksl674lso
        postalCode:
          type: string
          x-stoplight:
            id: 0ouwn768ftu5y
        city:
          type: string
          x-stoplight:
            id: la1e1xdhjkt44
        countryCode:
          type: string
          x-stoplight:
            id: d2v90ts4163d0
    OrderDeliveryPickupPointRequestSchema:
      title: OrderDeliveryPickupPointRequestSchema
      x-stoplight:
        id: 3cfk8l1dxxxtv
      type: object
      properties:
        pickupPointId:
          type: string
          x-stoplight:
            id: p6j8v9908h90v
        pickupPointType:
          type: string
          x-stoplight:
            id: 4o0dclwwbriun
        name:
          type: string
          x-stoplight:
            id: 8v67kwetlpzfc
        address:
          type: string
          x-stoplight:
            id: k22zxgpkium4d
        postalCode:
          type: string
          x-stoplight:
            id: pdh69bni3vhof
        city:
          type: string
          x-stoplight:
            id: fxkidmu8opqfp
        countryCode:
          type: string
          x-stoplight:
            id: lq8577wwrp4d4
    DeliveryServiceRequestSchema:
      title: DeliveryServiceRequestSchema
      x-stoplight:
        id: ssgm3pk3sd4sd
      type: object
      required:
        - postalCode
        - productUids
      properties:
        postalCode:
          type: string
          x-stoplight:
            id: w6sj3owxd8jed
        productUids:
          x-stoplight:
            id: ic3tkgn9on8lt
          type: array
          items:
            $ref: '#/components/schemas/UID'
    DeliveryServiceResponseSchema:
      title: DeliveryServiceProductResponseSchema
      x-stoplight:
        id: ub2pvu1c7rwfd
      type: object
      required:
        - productUid
        - serviceProducts
        - freightServiceProducts
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        serviceProducts:
          type: array
          x-stoplight:
            id: pcm1kirvmbwpf
          items:
            $ref: '#/components/schemas/StoreProductResponseSchema'
        freightServiceProducts:
          type: array
          x-stoplight:
            id: 1molhn75c8ufo
          items:
            $ref: '#/components/schemas/StoreProductResponseSchema'
    OrderConsentRequestSchema:
      title: OrderConsentRequestSchema
      x-stoplight:
        id: bpr7buqbff4bw
      type: object
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/OrderConsentENUM'
    OrderConsentENUM:
      title: OrderConsentENUM
      x-stoplight:
        id: 32ortzz8xdhkn
      type: string
      enum:
        - SUBSCRIPTION
    OrderConsentResponseSchema:
      title: OrderConsentResponseSchema
      x-stoplight:
        id: vf8bx9v53pp6q
      type: object
      required:
        - orderItemUid
        - sku
        - type
        - status
      properties:
        orderItemUid:
          $ref: '#/components/schemas/UID'
        sku:
          type: string
          x-stoplight:
            id: nlszkziwl3zdl
        type:
          $ref: '#/components/schemas/OrderConsentENUM'
        status:
          $ref: '#/components/schemas/OrderConsentResponseTypeENUM'
    OrderConsentResponseTypeENUM:
      title: OrderConsentResponseTypeENUM
      x-stoplight:
        id: 1fsse6o7c4z7l
      type: string
      enum:
        - ACCEPT
        - REJECT
        - PENDING
    DeliveryOptionProductSchema:
      title: DeliveryOptionProductSchema
      x-stoplight:
        id: x1rbqpusxe8uq
      type: object
      required:
        - productUid
        - quantity
      properties:
        productUid:
          $ref: '#/components/schemas/UID'
        quantity:
          x-stoplight:
            id: 1ijtkgljp05ev
          type: integer
        freightServiceProductUids:
          type: array
          x-stoplight:
            id: b8uo97xjnxnhx
          items:
            $ref: '#/components/schemas/UID'
        serviceProductUids:
          type: array
          x-stoplight:
            id: ium4i4yrpk6fh
          items:
            $ref: '#/components/schemas/UID'
    StoreAddressResponseSchema:
      title: StoreAddressResponseSchema
      x-stoplight:
        id: na2d0g6897xb4
      allOf:
        - type: object
          required:
            - storeAddressUid
            - companyName
            - vatNumber
            - address
            - postalCode
            - city
            - countryCode
            - email
            - phone
            - type
            - default
          properties:
            storeAddressUid:
              $ref: '#/components/schemas/UID'
            companyName:
              type: string
              x-stoplight:
                id: avkcb88ylaip9
            vatNumber:
              type: string
              x-stoplight:
                id: 77fautfu1pe0y
            address:
              type: string
              x-stoplight:
                id: frt4h8sbdlnrn
            postalCode:
              type: string
              x-stoplight:
                id: whgp2hbe97cin
            city:
              type: string
              x-stoplight:
                id: ztsueonvdblh7
            countryCode:
              type: string
              x-stoplight:
                id: o3xit973hhtj2
            email:
              type: string
              x-stoplight:
                id: 7onphserh919h
            phone:
              type: string
              x-stoplight:
                id: 0imqjo64p5z16
            type:
              $ref: '#/components/schemas/StoreAddressTypeENUM'
            default:
              type: boolean
              x-stoplight:
                id: fjo0yzsxbazta
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    StoreAddressTypeENUM:
      title: StoreAddressTypeENUM
      x-stoplight:
        id: nygkkdhs2y98a
      enum:
        - PURCHASE_INVOICE_ADDRESS
        - DELIVERY_ADDRESS
      type: string
    PurchaseOrderInvoiceAddress:
      title: PurchaseOrderInvoiceAddress
      x-stoplight:
        id: 0wvj713vgshkh
      type: object
      required:
        - companyName
        - address
        - postalCode
        - city
        - countryCode
        - vatNumber
        - email
      properties:
        companyName:
          type: string
          x-stoplight:
            id: ydnf3dpacc00l
        address:
          type: string
          x-stoplight:
            id: 4oqjvyp7v61qa
        postalCode:
          type: string
          x-stoplight:
            id: rc3lu02jn5ufm
        city:
          type: string
          x-stoplight:
            id: k5nfk704f2vtc
        countryCode:
          type: string
          x-stoplight:
            id: ly3efvgaornuw
        vatNumber:
          type: string
          x-stoplight:
            id: fb98kpuo7o1w4
        email:
          type: string
          x-stoplight:
            id: 4h61jut6nq6wo
    PurchaseOrderInvoiceAddressCreateSchema:
      title: PurchaseOrderInvoiceAddressCreateSchema
      x-stoplight:
        id: cn854dul1l4dm
      type: object
      required:
        - companyName
        - address
        - postalCode
        - city
        - countryCode
      properties:
        companyName:
          type: string
        address:
          type: string
        postalCode:
          type: string
        city:
          type: string
        countryCode:
          type: string
        vatNumber:
          type: string
        email:
          type: string
    PurchaseOrderInvoiceAddressUpdateSchema:
      title: PurchaseOrderInvoiceAddressUpdateSchema
      x-stoplight:
        id: cn6lt8o4i4n08
      type: object
      properties:
        companyName:
          type: string
        address:
          type: string
        postalCode:
          type: string
        city:
          type: string
        countryCode:
          type: string
        vatNumber:
          type: string
        email:
          type: string
    storeSettlementIssuerSchema:
      title: storeSettlementIssuerSchema
      x-stoplight:
        id: u8t5rer3ywjqq
      type: object
      description: Settlement issuer information
      required:
        - storeSettlementIssuerUid
        - name
        - code
      properties:
        storeSettlementIssuerUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: tklxmal9txcy6
          description: The name of the settlement issuer
        code:
          type: string
          x-stoplight:
            id: 4n2b9v7s9x1g9
          description: The code of the settlement issuer
    OrderImportStoreSettlementIssuerSchema:
      title: OrderImportStoreSettlementIssuerSchema
      x-stoplight:
        id: u8t5rer3ywjqq
      type: object
      description: Settlement issuer information
      required:
        - name
        - code
      properties:
        name:
          type: string
          x-stoplight:
            id: tklxmal9txcy6
          description: The name of the settlement issuer
        code:
          type: string
          x-stoplight:
            id: 4n2b9v7s9x1g9
          description: The code of the settlement issuer
    ProductsSoldNotDeliveredSchema:
      title: ProductsSoldNotDeliveredSchema
      x-stoplight:
        id: n4y2crmy0hm6n
      type: object
      properties:
        organisationUids:
          type: array
          x-stoplight:
            id: yhinxfvpvduzb
          items:
            $ref: '#/components/schemas/UID'
        storeUids:
          type: array
          x-stoplight:
            id: sn0rx9m06ar9i
          items:
            $ref: '#/components/schemas/UID'
    AccountingConfigsCustomerSchema:
      title: AccountingConfigsCustomerSchema
      x-stoplight:
        id: tkkdyz0ywzh34
      type: object
      required:
        - ledgerNumber
      properties:
        ledgerNumber:
          type: string
          x-stoplight:
            id: ho0zhpvvdbxhi
          description: Ledger number for the customer on the specific store
    AccountingConfigsFullCustomerResponseSchema:
      title: AccountingConfigsFullCustomerResponseSchema
      x-stoplight:
        id: ypinn0fr0x4c1
      type: object
      required:
        - accounting
        - customer
      properties:
        accounting:
          $ref: '#/components/schemas/AccountingConfigsCustomerSchema'
        customer:
          $ref: '#/components/schemas/CustomerResponseSchema'
    StoreCashReconciliationSchema:
      title: StoreCashReconciliationSchema
      x-stoplight:
        id: hqwu4y84lm1hj
      allOf:
        - type: object
          required:
            - storeCashReconciliationUid
            - reconciliationDate
            - balance
            - depositAmount
            - deposits
            - status
            - note
            - tenantUserUid
            - tenantUserDisplayName
            - review
            - cashReports
          properties:
            storeCashReconciliationUid:
              $ref: '#/components/schemas/UID'
            reconciliationDate:
              type: string
              x-stoplight:
                id: mjt7db592ioux
              format: date
            balance:
              type: integer
              x-stoplight:
                id: 7mfg0wqdta8rn
            depositAmount:
              type: integer
              x-stoplight:
                id: 5kv1wmtlpkqzc
            deposits:
              type: array
              x-stoplight:
                id: k774zcma6si2i
              items:
                $ref: '#/components/schemas/CashDepositSchema'
            status:
              $ref: '#/components/schemas/StoreCashReconciliationStatusENUM'
            note:
              type: string
              x-stoplight:
                id: 9lzl7vumoddmu
            tenantUserUid:
              $ref: '#/components/schemas/UID'
            tenantUserDisplayName:
              type: string
              x-stoplight:
                id: 12p48nakgydhk
            review:
              $ref: '#/components/schemas/StoreCashReconciliationReviewSchema'
            cashReports:
              type: array
              x-stoplight:
                id: 8unxk4qxn92i8
              items:
                $ref: '#/components/schemas/ExtendedTillCashReportSchema'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    StoreCashReconciliationReviewSchema:
      title: StoreCashReconciliationReviewSchema
      x-stoplight:
        id: nqmo3qwjprivp
      type: object
      nullable: true
      required:
        - reviewedAt
        - approved
        - note
        - tenantUserUid
        - tenantUserDisplayName
      properties:
        reviewedAt:
          type: string
          x-stoplight:
            id: nmzmf1vwz8aav
          format: date-time
        approved:
          type: boolean
          x-stoplight:
            id: bs5t9raa7tgwn
        note:
          type: string
          x-stoplight:
            id: uzqct4ufnfcw0
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        tenantUserDisplayName:
          type: string
          x-stoplight:
            id: gkxsa7gakzpbb
    StoreCashReconciliationReviewRequestSchema:
      title: StoreCashReconciliationReviewRequestSchema
      x-stoplight:
        id: xbk29ad8qzb4k
      type: object
      required:
        - tenantUserUid
        - reviewedAt
        - approved
        - pin
      properties:
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        reviewedAt:
          type: string
          x-stoplight:
            id: i2ioka5mbgpcm
          format: date-time
        approved:
          type: boolean
          x-stoplight:
            id: gnz3xfzzuxl2d
        note:
          type: string
          x-stoplight:
            id: 39rpt0cuwxwnm
        pin:
          type: string
          x-stoplight:
            id: svfohce9e3kyx
    StoreCashReconciliationStatusENUM:
      type: string
      title: StoreCashReconciliationStatusENUM
      x-stoplight:
        id: cwcqfjji7kml3
      enum:
        - IN_PROGRESS
        - COMPLETE
        - NOT_STARTED
    CashDepositSchema:
      title: CashDepositSchema
      x-stoplight:
        id: uunmwboub78an
      type: object
      required:
        - cashDepositUid
        - depositNumber
        - amount
        - depositedAt
        - denominations
        - reconciliations
      properties:
        cashDepositUid:
          $ref: '#/components/schemas/UID'
        depositNumber:
          type: string
          x-stoplight:
            id: nti247zzkwxkw
        amount:
          type: integer
          x-stoplight:
            id: 3hu00pfdp96mx
        depositedAt:
          type: string
          x-stoplight:
            id: 8oepdz0lbspfr
          format: date-time
        denominations:
          type: array
          x-stoplight:
            id: gofn6wgtcuazp
          items:
            $ref: '#/components/schemas/CashDetailSchema'
        reconciliations:
          type: array
          x-stoplight:
            id: qha708slfcn6v
          items:
            $ref: '#/components/schemas/StoreCashReconciliationSummary'
    StoreCashReconciliationSummary:
      title: StoreCashReconciliationSummary
      x-stoplight:
        id: f2fh8y7njqc77
      type: object
      required:
        - storeCashReconciliationUid
        - reconciliationDate
        - depositAmount
        - status
      properties:
        storeCashReconciliationUid:
          $ref: '#/components/schemas/UID'
        reconciliationDate:
          type: string
          x-stoplight:
            id: f5yg9vsc2iuay
          format: date
        depositAmount:
          type: integer
          x-stoplight:
            id: lphmwf693klp2
        status:
          $ref: '#/components/schemas/StoreCashReconciliationStatusENUM'
    TillCashReportKey:
      title: TillCashRegisterStatusKey
      x-stoplight:
        id: n6yrhdrowxq1m
      type: object
      required:
        - tillUid
        - cashReportUid
      properties:
        tillUid:
          $ref: '#/components/schemas/UID'
        cashReportUid:
          $ref: '#/components/schemas/UID'
    CashDepositRequestSchema:
      title: CashDepositRequestSchema
      x-stoplight:
        id: kio99nnz8knm4
      type: object
      properties:
        depositNumber:
          type: string
          x-stoplight:
            id: ftueoiwt0s2pq
        amount:
          type: integer
          x-stoplight:
            id: d99hc6gs5fiao
        depositedAt:
          type: string
          x-stoplight:
            id: fww52ljogruxd
          format: date-time
        denominations:
          type: array
          items:
            $ref: '#/components/schemas/CashDetailSchema'
    ReasonsReportRequestSchema:
      title: ReasonsReportRequestSchema
      x-stoplight:
        id: 4lusb0inr2zio
      type: object
      description: Request schema for reasons usage report
      required:
        - fromDateTime
        - toDateTime
      properties:
        fromDateTime:
          type: string
          x-stoplight:
            id: l05jfdae1hpiq
          format: date-time
          description: Start date and time for the report period
        toDateTime:
          type: string
          x-stoplight:
            id: d2vbnmzcn817b
          format: date-time
          description: End date and time for the report period
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
    DiscountReasonStatisticSchema:
      title: DiscountReasonStatisticSchema
      x-stoplight:
        id: discount-reason-statistic-schema
      type: object
      description: Aggregated statistics for a discount reason code
      required:
        - reasonCode
        - reasonDescription
        - totalAmount
        - percentageOfTotal
        - totalOccurrences
      properties:
        reasonCode:
          type: string
          description: The unique code identifying the discount reason
          example: '06'
        reasonDescription:
          type: string
          description: The description of the discount reason
          example: Discount for early payment
        totalAmount:
          type: integer
          description: 'Total discount amount (in minor units, e.g. cents) for this reason'
          example: 1493263
          minimum: 0
        percentageOfTotal:
          type: number
          format: double
          description: Percentage of total discount amount represented by this reason
          example: 98.44
          minimum: 0
          maximum: 100
        totalOccurrences:
          type: integer
          description: Number of times this discount reason was used
          example: 11
          minimum: 0
    ReturnReasonStatisticSchema:
      title: ReturnReasonStatisticSchema
      x-stoplight:
        id: return-reason-statistic-schema
      type: object
      description: Aggregated statistics for a return reason code
      required:
        - reasonCode
        - reasonDescription
        - totalAmount
        - percentageOfTotal
        - totalOccurrences
      properties:
        reasonCode:
          type: string
          description: The unique code identifying the return reason
          example: feil
        reasonDescription:
          type: string
          description: The description of the return reason
          example: Return for defective product
        totalAmount:
          type: integer
          description: 'Total return amount (in minor units, e.g. cents) for this reason'
          example: 749679
          minimum: 0
        percentageOfTotal:
          type: number
          format: double
          description: Percentage of total return amount represented by this reason
          example: 93.63
          minimum: 0
          maximum: 100
        totalOccurrences:
          type: integer
          description: Number of times this return reason was used
          example: 250
          minimum: 0
    ReasonsReportResponseSchema:
      title: ReasonsReportResponseSchema
      x-stoplight:
        id: 9xr4m2kp8qwzn
      type: object
      description: Response schema for reasons usage report with aggregated discount and return reason data
      required:
        - discountReasons
        - returnReasons
      properties:
        discountReasons:
          type: array
          description: Aggregated statistics for discount reasons used during the report period
          items:
            $ref: '#/components/schemas/DiscountReasonStatisticSchema'
          example:
            - reasonCode: '06'
              reasonDescription: Campaign
              totalAmount: 1493263
              percentageOfTotal: 98.44
              totalOccurrences: 11
        returnReasons:
          type: array
          description: Aggregated statistics for return reasons used during the report period
          items:
            $ref: '#/components/schemas/ReturnReasonStatisticSchema'
          example:
            - reasonCode: feil
              reasonDescription: Did not work
              totalAmount: 749679
              percentageOfTotal: 93.63
              totalOccurrences: 250
    StockLogSalesOrderReferenceSchema:
      title: StockLogSalesOrderReferenceSchema
      x-stoplight:
        id: p2d4xjytvwe45
      type: object
      nullable: true
      required:
        - orderNumber
        - orderUid
        - storeUid
        - orderItemUid
      properties:
        orderNumber:
          type: string
        orderUid:
          $ref: '#/components/schemas/UID'
        storeUid:
          $ref: '#/components/schemas/UID'
        orderItemUid:
          $ref: '#/components/schemas/UID'
    StockLogReceivementReferenceSchema:
      title: StockLogReceivementReferenceSchema
      x-stoplight:
        id: gdbofvgwrbyk2
      type: object
      nullable: true
      required:
        - purchaseNumber
        - storeUid
        - purchaseOrderUid
        - purchaseOrderItemUid
        - receivementUid
        - receivementItemUid
      properties:
        purchaseNumber:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        purchaseOrderUid:
          $ref: '#/components/schemas/UID'
        purchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
        receivementUid:
          $ref: '#/components/schemas/UID'
        receivementItemUid:
          $ref: '#/components/schemas/UID'
    StockLogRmaOrderReferenceSchema:
      title: StockLogRmaOrderReferenceSchema
      x-stoplight:
        id: 35sjf9o3q2za2
      type: object
      nullable: true
      required:
        - rmaNumber
        - storeUid
        - rmaOrderUid
        - rmaOrderItemUid
      properties:
        rmaNumber:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        rmaOrderUid:
          $ref: '#/components/schemas/UID'
        rmaOrderItemUid:
          $ref: '#/components/schemas/UID'
    StockLogStocktakingReferenceSchema:
      title: StockLogStocktakingReferenceSchema
      x-stoplight:
        id: i0ik6zqrv80lt
      type: object
      nullable: true
      required:
        - name
        - storeUid
        - stocktakingUid
        - stocktakingItemUid
      properties:
        name:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        stocktakingUid:
          $ref: '#/components/schemas/UID'
        stocktakingItemUid:
          $ref: '#/components/schemas/UID'
    StockLogInternalPurchaseOrderReferenceSchema:
      title: StockLogInternalPurchaseOrderReferenceSchema
      x-stoplight:
        id: 0k1534q4dd4dn
      type: object
      nullable: true
      required:
        - internalPurchaseNumber
        - storeUid
        - internalPurchaseOrderUid
        - internalPurchaseOrderItemUid
      properties:
        internalPurchaseNumber:
          type: string
          x-stoplight:
            id: 9uxilzjwn43xd
        storeUid:
          $ref: '#/components/schemas/UID'
        internalPurchaseOrderUid:
          $ref: '#/components/schemas/UID'
        internalPurchaseOrderItemUid:
          $ref: '#/components/schemas/UID'
    StockLogServiceOrderReferenceSchema:
      title: StockLogServiceOrderReferenceSchema
      type: object
      nullable: true
      required:
        - serviceOrderNumber
        - storeUid
        - serviceOrderUid
        - serviceOrderItemUid
      properties:
        serviceOrderNumber:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        serviceOrderUid:
          $ref: '#/components/schemas/UID'
        serviceOrderItemUid:
          $ref: '#/components/schemas/UID'
    SalesReservationReceivementSchema:
      title: SalesReservationReceivementSchema
      x-stoplight:
        id: 73rfck5urnonw
      type: object
      required:
        - receivementUid
        - receivementItemUid
        - expectedArrival
        - quantity
        - supplierOrderReference
        - receivedAt
      properties:
        receivementUid:
          $ref: '#/components/schemas/UID'
        receivementItemUid:
          $ref: '#/components/schemas/UID'
        expectedArrival:
          type: string
          x-stoplight:
            id: azf2th219y064
          format: date-time
        expectedDispatch:
          type: string
          x-stoplight:
            id: nfwwuoueshlf5
          format: date-time
        quantity:
          type: integer
          x-stoplight:
            id: y6g76gcsf1b06
        supplierOrderReference:
          type: string
          x-stoplight:
            id: jn1s4v7olidyr
        receivedAt:
          type: string
          x-stoplight:
            id: n24bktj4yvmj7
          format: date-time
          nullable: true
    ProfraktPickupLocationRequestSchema:
      title: ProfraktPickupLocationRequestSchema
      x-stoplight:
        id: o13440w3bu812
      type: object
      description: Profrakt Pickup Location request Schema
      required:
        - postalCode
        - city
        - countryCode
        - carrier
      properties:
        postalCode:
          type: string
          x-stoplight:
            id: kr4ncldww5vj7
        city:
          type: string
          x-stoplight:
            id: 1kgxcv8mc6upb
        countryCode:
          type: string
          x-stoplight:
            id: upkl97cfqurf7
        carrier:
          type: string
          x-stoplight:
            id: ivttkxwsk2hja
        address:
          type: string
          x-stoplight:
            id: 71orwzkfb2aea
    ProfraktPickupLocationResponseSchema:
      title: ProfraktPickupLocationResponseSchema
      x-stoplight:
        id: 6xmhglkze7gsd
      type: object
      required:
        - number
        - name
        - address1
        - address2
        - postalCode
        - countryCode
        - distanceInKm
        - city
      properties:
        number:
          type: string
          x-stoplight:
            id: ju4lnrvfhq5rc
        name:
          type: string
          x-stoplight:
            id: uh0r2ip4sjccb
        address1:
          type: string
          x-stoplight:
            id: nmfojisfblt0h
        address2:
          type: string
          x-stoplight:
            id: fxhg81xtczpvf
        postalCode:
          type: string
          x-stoplight:
            id: z2n90a0s12x5m
        countryCode:
          type: string
          x-stoplight:
            id: yb8r0azf2y0g6
        distanceInKm:
          type: number
          x-stoplight:
            id: boei6ymhcvson
          format: double
        city:
          type: string
          x-stoplight:
            id: eh2ovdpk58xpt
    ExtendedTillCashReportSchema:
      title: ExtendedTillCashReportSchema
      x-stoplight:
        id: ugm058x68h8an
      allOf:
        - type: object
          required:
            - tillUid
            - tillName
            - tillNumber
          properties:
            tillUid:
              $ref: '#/components/schemas/UID'
            tillName:
              type: string
              x-stoplight:
                id: 2iicrqd49d8lh
            tillNumber:
              type: integer
              x-stoplight:
                id: 4zejakirn3cv0
        - $ref: '#/components/schemas/TillCashReportResponseSchema'
    TenantUserPermissionResponseSchema:
      title: TenantUserPermissionResponseSchema
      x-stoplight:
        id: 0sw5wrfjrut96
      type: object
      required:
        - tenant
        - stores
        - organizations
      properties:
        tenant:
          type: array
          x-stoplight:
            id: o79btim7p7t90
          items:
            x-stoplight:
              id: bzcek1dkv41v8
            type: string
        stores:
          type: array
          x-stoplight:
            id: 3lnxmg3apvnjd
          items:
            $ref: '#/components/schemas/StorePermissionResponseSchema'
        organizations:
          type: array
          x-stoplight:
            id: sh3elsi3tc1s1
          items:
            $ref: '#/components/schemas/OrganizationPermissionResponseSchema'
    StorePermissionResponseSchema:
      title: StorePermissionResponseSchema
      x-stoplight:
        id: 8gxqi78z3k2q2
      type: object
      required:
        - store
        - permissions
      properties:
        store:
          $ref: '#/components/schemas/BasicStoreResponseSchema'
        permissions:
          type: array
          x-stoplight:
            id: ntqt8kmxdb3o3
          items:
            x-stoplight:
              id: 7hgjhiwv3ltec
            type: string
    OrganizationPermissionResponseSchema:
      title: OrganizationPermissionResponseSchema
      x-stoplight:
        id: 3bur9dla64zyz
      type: object
      required:
        - organization
        - permissions
      properties:
        organization:
          $ref: '#/components/schemas/BasicOrganizationResponseSchema'
        permissions:
          type: array
          x-stoplight:
            id: gf2igb21ltvww
          items:
            x-stoplight:
              id: mckw1ryf47z4b
            type: string
    PostmarkWebhookSchema:
      title: PostmarkWebhookSchema
      type: object
      description: Minimal schema for identifying Postmark webhook type
      x-tags:
        - Webhooks
      required:
        - RecordType
      properties:
        RecordType:
          type: string
          description: The type of webhook event
          enum:
            - Delivery
            - Bounce
            - SpamComplaint
            - Open
            - Click
            - SubscriptionChange
          example: Delivery
        Metadata:
          type: object
          description: Optional metadata associated with the webhook
          example:
            example: value
            example_2: value
          additionalProperties:
            type: string
        Details:
          type: string
          description: Optional details about the webhook event
          example: Test webhook details
    StockLogReferenceSchema:
      title: StockLogReferenceSchema
      x-stoplight:
        id: v6x6grhw9yl97
      type: object
      required:
        - salesOrder
        - rmaOrder
        - stocktaking
        - internalPurchaseOrder
        - serviceOrder
        - receivement
        - responseType
      properties:
        salesOrder:
          $ref: '#/components/schemas/StockLogSalesOrderReferenceSchema'
        rmaOrder:
          $ref: '#/components/schemas/StockLogRmaOrderReferenceSchema'
        stocktaking:
          $ref: '#/components/schemas/StockLogStocktakingReferenceSchema'
        internalPurchaseOrder:
          $ref: '#/components/schemas/StockLogInternalPurchaseOrderReferenceSchema'
        serviceOrder:
          $ref: '#/components/schemas/StockLogServiceOrderReferenceSchema'
        receivement:
          $ref: '#/components/schemas/StockLogReceivementReferenceSchema'
        responseType:
          x-stoplight:
            id: 8kf3ooskqgjsz
          type: string
          enum:
            - salesOrder
            - rmaOrder
            - stocktaking
            - internalPurchaseOrder
            - serviceOrder
            - receivement
            - noReference
    TillOperationActionENUM:
      title: TillOperationActionENUM
      type: string
      x-stoplight:
        id: pw6x5ot77td4w
      enum:
        - CLEAR_ORDER
      description: |
        Action | Description
        ---------|----------
        CLEAR_ORDER | Removes the current order from the till, regardless of the state of the order. Requires SUPERADMIN 
    PosterTemplateSchema:
      allOf:
        - type: object
          required:
            - posterTemplateUid
            - name
            - html
            - size
            - orientation
            - previewImage
            - thousandSeparator
          properties:
            posterTemplateUid:
              $ref: '#/components/schemas/UID'
            name:
              type: string
              x-stoplight:
                id: 4ztoi69o2v4e5
            html:
              type: string
              x-stoplight:
                id: 2a1mhi0rft141
              description: template body
            size:
              $ref: '#/components/schemas/PaperSizeEnum'
            orientation:
              $ref: '#/components/schemas/PaperOrientationEnum'
            previewImage:
              type: string
              x-stoplight:
                id: 1ph9cga4z9fr0
              description: base64 encoded image data
            thousandSeparator:
              $ref: '#/components/schemas/ThousandSeparatorENUM'
        - $ref: '#/components/schemas/CreatedModifiedSchema'
    PaperSizeEnum:
      title: PaperSizeEnum
      x-stoplight:
        id: ua0oba6i6zjxd
      type: string
      enum:
        - A1
        - A2
        - A3
        - A4
        - A5
        - A6
    PaperOrientationEnum:
      title: PaperOrientationEnum
      x-stoplight:
        id: oi2t5rdfyohpp
      type: string
      enum:
        - Portrait
        - Landscape
    PosterTemplateBaseSchema:
      title: PosterTemplateBaseSchema
      x-stoplight:
        id: c7d9v1ak2v65a
      type: object
      required:
        - name
        - size
        - orientation
        - html
      properties:
        name:
          type: string
          x-stoplight:
            id: 0q82rwlbj0tlr
        size:
          $ref: '#/components/schemas/PaperSizeEnum'
        orientation:
          $ref: '#/components/schemas/PaperOrientationEnum'
        html:
          type: string
          x-stoplight:
            id: j12c8i3ebwfgg
          description: template body
    PosterProductRequest:
      title: PosterProductRequest
      x-stoplight:
        id: 5y42pqy9covze
      type: object
      properties:
        sku:
          type: string
          x-stoplight:
            id: m7azzb62vgp9m
        name:
          type: string
          x-stoplight:
            id: wt5ggroy9xztu
        nowPrice:
          type: integer
          x-stoplight:
            id: izqe0qpo7p0sa
        beforePrice:
          type: integer
          x-stoplight:
            id: uydnlr83ow5n6
        discountPercentage:
          type: integer
          x-stoplight:
            id: 6ykn5kru7ank5
        brandName:
          type: string
          x-stoplight:
            id: 12cla2m9zwi72
        description:
          type: string
          x-stoplight:
            id: oleufdmki9rq5
        usps:
          type: array
          x-stoplight:
            id: cnkgwseb97b8o
          description: Unique Selling Propositions
          items:
            x-stoplight:
              id: 08dlpn7l81bvr
            type: string
        imageUrl:
          type: string
          x-stoplight:
            id: imq6yc4q2rr6y
        barcodeValue:
          type: string
          x-stoplight:
            id: m3pb80znvgz31
        properties:
          type: array
          x-stoplight:
            id: 7yml4g80jul14
          items:
            x-stoplight:
              id: 85am1sgf7xaxr
            type: string
    TillDeviceResponseSchema:
      title: TillDeviceResponseSchema
      x-stoplight:
        id: chf40jqjryehn
      type: object
      nullable: true
      required:
        - deviceUid
        - identifier
        - name
      properties:
        deviceUid:
          $ref: '#/components/schemas/UID'
        identifier:
          type: string
          x-stoplight:
            id: iz4ybh29zf4mq
        name:
          type: string
          x-stoplight:
            id: hl5rsoa425t1x
    OrderStatusResponseSchema:
      title: OrderStatusResponseSchema
      x-stoplight:
        id: 03u9icp2q3xfn
      type: object
      required:
        - orderItems
        - deliveries
      properties:
        orderItems:
          type: array
          x-stoplight:
            id: hxte0qr3pkrwn
          items:
            $ref: '#/components/schemas/OrderItemStatusSchema'
        deliveries:
          type: array
          x-stoplight:
            id: qwjjhpzq8ktt1
          items:
            $ref: '#/components/schemas/OrderDeliveryStatusSchema'
    OrderItemStatusSchema:
      title: OrderItemStatusSchema
      x-stoplight:
        id: 2w56xj0hw9de4
      type: object
      required:
        - severity
        - message
        - orderItemUid
      properties:
        severity:
          $ref: '#/components/schemas/SeverityENUM'
        message:
          type: string
          x-stoplight:
            id: 0s2iy8efmb9ag
        orderItemUid:
          $ref: '#/components/schemas/UID'
    OrderDeliveryStatusSchema:
      title: OrderDeliveryStatusSchema
      x-stoplight:
        id: 2w56xj0hw9de4
      type: object
      required:
        - severity
        - message
        - orderDeliveryUid
      properties:
        severity:
          $ref: '#/components/schemas/SeverityENUM'
        message:
          type: string
          x-stoplight:
            id: 0s2iy8efmb9ag
        orderDeliveryUid:
          $ref: '#/components/schemas/UID'
    SeverityENUM:
      title: SeverityENUM
      description: |-
        |ENUM      | Description |
        | ---------------- | ------------ |
        | WARNING | Warning message, not critical|
        | ERROR | Error message, action must be taken by user|
      type: string
      x-stoplight:
        id: ni3xrojdbp61c
      enum:
        - WARNING
        - ERROR
    CustomerRequiredFieldENUM:
      title: CustomerRequiredFieldENUM
      x-stoplight:
        id: xvwqk08ufr6za
      type: string
      enum:
        - email
        - mobile
        - vatNumber
        - postalCode
        - city
        - address
    ThousandSeparatorENUM:
      title: ThousandSeparatorENUM
      type: string
      x-stoplight:
        id: rvxhnkbf5gfbs
      enum:
        - COMMA
        - DOT
        - SPACE
        - NONE
    FlowboxAutoRegisterSchema:
      title: FlowboxAutoRegisterSchema
      x-stoplight:
        id: clqmhzxi7wngd
      type: object
      properties:
        hostname:
          type: string
          x-stoplight:
            id: u5b2sfyhqgrdj
    SubscriberResponseSchema:
      title: SubscriberResponseSchema
      x-stoplight:
        id: zh9o6ggibf8ez
      type: object
      required:
        - subscriberUid
        - subscription
        - tenantUser
        - createdAt
        - createdBy
      properties:
        subscriberUid:
          $ref: '#/components/schemas/UID'
        subscription:
          $ref: '#/components/schemas/SubscriberSubscription'
        tenantUser:
          $ref: '#/components/schemas/SubscriberTenantUser'
        createdAt:
          type: string
          x-stoplight:
            id: 2c0t0iopc5hqj
          format: date-time
        createdBy:
          type: string
          x-stoplight:
            id: g56wyfiwdwb6n
    SubscriberSubscription:
      title: SubscriberSubscription
      x-stoplight:
        id: 840e22f6s3w31
      type: object
      required:
        - type
        - name
      properties:
        type:
          $ref: '#/components/schemas/SubscriberSubscriptionType'
        name:
          type: string
          x-stoplight:
            id: h44rcnzfu1l0d
    SubscriberSubscriptionType:
      title: SubscriberSubscriptionType
      x-stoplight:
        id: qoy1rfeqh3pol
      type: string
      enum:
        - SALES_SUMMARY_REPORT
    SubscriberTenantUser:
      title: SubscriberTenantUser
      x-stoplight:
        id: p351zlgyyrp60
      type: object
      required:
        - tenantUserUid
        - displayName
        - email
      properties:
        tenantUserUid:
          $ref: '#/components/schemas/UID'
        displayName:
          type: string
          x-stoplight:
            id: urflx8xi3s2xt
        email:
          type: string
          x-stoplight:
            id: 2uvo6ti1hdkqb
    AiChatMessageSchema:
      title: AiChatMessageSchema
      x-stoplight:
        id: 2k6044nrrbp44
      type: object
      required:
        - role
        - content
      properties:
        role:
          $ref: '#/components/schemas/AiRoleENUM'
        content:
          type: string
          x-stoplight:
            id: lobd221pytnlc
    AiRoleENUM:
      title: AiRoleENUM
      x-stoplight:
        id: wxuirwj0ppucy
      type: string
      enum:
        - USER
        - ASSISTANT
    AiResponseSchema:
      title: AiResponseSchema
      x-stoplight:
        id: ytc56rfebilw1
      type: object
      required:
        - message
        - conversationHistory
        - toolsUsed
        - inputTokens
        - outputTokens
        - durationMs
      properties:
        message:
          type: string
          x-stoplight:
            id: jm80wa6incr1k
        conversationHistory:
          type: array
          x-stoplight:
            id: grn4tcxq3h2lu
          items:
            $ref: '#/components/schemas/AiChatMessageSchema'
        toolsUsed:
          type: array
          x-stoplight:
            id: prvyhyxg3yjav
          items:
            x-stoplight:
              id: iodr95es4puhq
            type: string
        inputTokens:
          type: integer
          x-stoplight:
            id: x7r2ud05s5s3h
        outputTokens:
          type: integer
          x-stoplight:
            id: 98ptxvjf7sdau
        durationMs:
          type: integer
          x-stoplight:
            id: 9d569uk4f5870
    AiRequestSchema:
      title: AiRequestSchema
      x-stoplight:
        id: 2pgtgj1zugoit
      type: object
      required:
        - message
      properties:
        message:
          type: string
          x-stoplight:
            id: wjwq2fk9pm4nb
        conversationHistory:
          type: array
          x-stoplight:
            id: tutctruqqqq1z
          items:
            $ref: '#/components/schemas/AiChatMessageSchema'
        storeUid:
          $ref: '#/components/schemas/OptionalUID'
        model:
          type: string
          x-stoplight:
            id: 8w6gxs1ikeiqm
    MinimumVersionSchema:
      title: MinimumVersionSchema
      x-stoplight:
        id: 45d0x5bm0i316
      type: object
      description: Minimum version support schema
      required:
        - appId
        - version
      properties:
        appId:
          $ref: '#/components/schemas/DeviceAppCodeENUM'
        version:
          type: string
          x-stoplight:
            id: qpnlpqqmp3kud
          description: The minimum version supported
          example: 2.2.2
    OrderCountRequestSchema:
      title: OrderCountRequestSchema
      x-stoplight:
        id: kvaz5pq505ejd
      type: object
      required:
        - queryKey
        - query
      properties:
        queryKey:
          type: string
          description: Used for correlating requests and responses. Can be any value.
          x-stoplight:
            id: lr0wa6f45v9wu
        query:
          $ref: '#/components/schemas/TenantOrderSearchSchema'
    OrderCountRequestListSchema:
      title: OrderCountRequestListSchema
      type: object
      required:
        - queries
      properties:
        queries:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/OrderCountRequestSchema'
    OrderCountResponseSchema:
      title: OrderCountResponseSchema
      x-stoplight:
        id: z2fjbuecdsl4h
      type: object
      required:
        - queryKey
        - count
      properties:
        queryKey:
          type: string
          description: Used for correlating requests and responses. Can be any value.
          x-stoplight:
            id: t1uzco9ig6yl4
        count:
          x-stoplight:
            id: q9ythhmwls7h4
          type: integer
    OrderCountResponseListSchema:
      title: OrderCountResponseListSchema
      type: object
      required:
        - results
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/OrderCountResponseSchema'
    PaymentMethodCustomerTypeENUM:
      title: PaymentMethodCustomerTypeENUM
      x-stoplight:
        id: 6apcl1nwl3t2c
      type: string
      enum:
        - ANY
        - PERSON
        - COMPANY
    TenantPaymentMethodAmountInputENUM:
      title: TenantPaymentMethodAmountInputENUM
      x-stoplight:
        id: hsfmiejnqqnvb
      type: string
      enum:
        - NONE
        - AUTOFILL_REMAINING
        - FORCE_REMAINING
    OrderImportSettlementStatusENUM:
      title: OrderImportSettlementStatusENUM
      x-stoplight:
        id: xsg9gt79wkegu
      type: string
      enum:
        - AUTHORIZED
        - CAPTURED
    InternalFlowitStoreSchema:
      title: InternalFlowitStoreSchema
      x-stoplight:
        id: q5n101ya7a242
      type: object
      x-internal: true
      required:
        - address
        - city
        - countryCode
        - createdAt
        - email
        - externalId
        - isActive
        - lastModifiedAt
        - latitude
        - longitude
        - name
        - postalCode
        - phone
        - storeUid
        - vatNumber
        - organizationUid
        - availableExtensions
        - openingHours
        - bankInfo
        - websiteUrl
        - addresses
        - tenant
      properties:
        address:
          type: string
        city:
          type: string
        countryCode:
          type: string
        createdAt:
          format: date-time
          type: string
        email:
          $ref: '#/components/schemas/EmailTYPE'
        externalId:
          type: string
        isActive:
          type: boolean
        lastModifiedAt:
          format: date-time
          type: string
        latitude:
          type: number
        longitude:
          type: number
        name:
          type: string
        postalCode:
          type: string
        phone:
          type: string
        storeUid:
          $ref: '#/components/schemas/UID'
        vatNumber:
          $ref: '#/components/schemas/VatNumberTYPE'
        organizationUid:
          $ref: '#/components/schemas/UID'
        availableExtensions:
          type: array
          x-stoplight:
            id: aeinnaudgivjz
          items:
            $ref: '#/components/schemas/AvailableExtensionSchema'
        openingHours:
          $ref: '#/components/schemas/OpeningHoursResponseSchema'
        bankInfo:
          $ref: '#/components/schemas/BankInfoResponseSchema'
        websiteUrl:
          type: string
          x-stoplight:
            id: 8rb64ouufor9l
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/StoreAddressResponseSchema'
        tenant:
          $ref: '#/components/schemas/InternalFlowitStoreTenantSchema'
    InternalFlowitStoreTenantSchema:
      title: InternalFlowitStoreTenantSchema
      x-stoplight:
        id: w5i3ki8an3zjk
      type: object
      required:
        - tenantUid
        - name
      properties:
        tenantUid:
          $ref: '#/components/schemas/UID'
        name:
          type: string
          x-stoplight:
            id: j5wru9zxmw1en
      x-internal: true
    InternalFlowitSMSCountSchema:
      title: InternalFlowitSMSCountSchema
      x-stoplight:
        id: 3lf5cpj2lbe8d
      type: object
      x-internal: true
      required:
        - storeUid
        - storeName
        - smsCount
      properties:
        storeUid:
          $ref: '#/components/schemas/UID'
        storeName:
          type: string
          x-stoplight:
            id: 8n8qieau25oxm
        smsCount:
          type: integer
          x-stoplight:
            id: hryobags54n97
    CustomerContactRoleENUM:
      title: CustomerContactRoleENUM
      x-stoplight:
        id: ngk7nnf7oxdx0
      type: string
      enum:
        - ADMIN
        - PURCHASER
        - ACCOUNTING
        - NONE
    CustomerContactCustomersSchema:
      title: CustomerContactCustomersSchema
      x-stoplight:
        id: l46zlbwjjdjg0
      type: object
      required:
        - customerUid
        - displayName
        - role
        - extensions
      properties:
        customerUid:
          $ref: '#/components/schemas/UID'
        displayName:
          type: string
          x-stoplight:
            id: jjy5gf3g5tri3
        role:
          $ref: '#/components/schemas/CustomerContactRoleENUM'
        extensions:
          type: array
          x-stoplight:
            id: s39wf7jnejnxx
          items:
            $ref: '#/components/schemas/CustomerContactExtensionResponseSchema'
    CustomerContactAddCustomerRequestSchema:
      title: CustomerContactAddCustomerRequestSchema
      x-stoplight:
        id: 797tq1sodh9ja
      type: object
      properties:
        customers:
          type: array
          x-stoplight:
            id: ti535pri5km4e
          items:
            $ref: '#/components/schemas/CustomerContactLinkRequestSchema'
    CustomerContactSearchRequestSchema:
      title: CustomerContactSearchRequestSchema
      x-stoplight:
        id: 2q9oc91yn4jbl
      type: object
      properties:
        query:
          type: string
          x-stoplight:
            id: qf9qi1qv6ew0i
        email:
          $ref: '#/components/schemas/EmailTYPE'
        mobile:
          type: string
          x-stoplight:
            id: yofodxnx5yuow
    CustomerContactsListSchema:
      title: CustomerContactsListSchema
      x-stoplight:
        id: ofm0f3ih4udk2
      type: object
      properties:
        items:
          x-stoplight:
            id: b90ceghtoxu0x
          type: array
          items:
            $ref: '#/components/schemas/CustomerContactCustomersSchema'
    OrderItemMessageSchema:
      title: OrderItemMessageSchema
      x-stoplight:
        id: lwhukhdrp9bud
      type: object
      required:
        - orderItemUid
        - message
      properties:
        orderItemUid:
          $ref: '#/components/schemas/OptionalUID'
        message:
          type: string
          x-stoplight:
            id: w8swrz0lzii9a
    ImportFieldDefinitionSchema:
      title: ImportFieldDefinitionSchema
      x-stoplight:
        id: 9mxbzbl1oopd8
      type: object
      required:
        - name
        - type
        - allowedValues
        - createUsage
        - updateUsage
      properties:
        name:
          type: string
          x-stoplight:
            id: 8n4dhp4j4m8sq
        type:
          type: string
          x-stoplight:
            id: x48q4opa5jsuk
        allowedValues:
          type: array
          x-stoplight:
            id: q8pomhgk9wyka
          items:
            x-stoplight:
              id: qzi2af6yfuiwo
            type: string
        createUsage:
          $ref: '#/components/schemas/ImportFieldUsageSchema'
        updateUsage:
          $ref: '#/components/schemas/ImportFieldUsageSchema'
    ImportFieldUsageENUM:
      title: ImportFieldUsageENUM
      x-stoplight:
        id: gwxdarmyboyzy
      type: string
      enum:
        - REQUIRED
        - OPTIONAL
        - UNAVAILABLE
    ImportFieldUsageSchema:
      title: ImportFieldUsageSchema
      x-stoplight:
        id: 6yf3hwi4spd3k
      type: object
      required:
        - usage
        - requiredExchangeableWith
      properties:
        usage:
          $ref: '#/components/schemas/ImportFieldUsageENUM'
        requiredExchangeableWith:
          type: array
          x-stoplight:
            id: t4zjpy5yqsy8n
          description: |-
            List of field names that can substitute this field. 
            At least one field in an exchangeable group must be mapped in the layout. 
            Empty array if the field is unconditionally required.
          items:
            x-stoplight:
              id: v1bgqgm57e30k
            type: string
    ProductPropertiesSchema:
      title: ProductPropertiesSchema
      x-stoplight:
        id: asw0qenkvthel
      description: |-
        Product property value for `propertyUid`. Supports TEXT, SINGLESELECT (single), and MULTISELECT (multi) property types.

        An empty string for `value` removes the property from the product.
      type: object
      required:
        - propertyUid
        - value
      properties:
        propertyUid:
          $ref: '#/components/schemas/UID'
        value:
          type: string
          description: Text line for TEXT properties, or property option UID for SINGLESELECT/MULTISELECT as applicable. Empty string (`""`) removes this property from the product.
          x-stoplight:
            id: 6j6lf6oz372vz
  securitySchemes:
    accessToken:
      description: Access token recevied after user login with a deviceToken
      scheme: bearer
      type: http
    adyenAuth:
      description: ''
      scheme: basic
      type: http
    authToken:
      description: Token received from the auth service
      scheme: bearer
      type: http
    deviceToken:
      description: The devicetoken is only used for to attach devices and tie it to a tenant
      scheme: bearer
      type: http
    flowboxToken:
      scheme: bearer
      type: http
    integrationToken:
      scheme: bearer
      type: http
    internalKey:
      type: http
      scheme: bearer
info:
  contact:
    email: integration@flowretail.no
    name: Flow Retail AS
    url: 'https://www.flowretail.no'
  description: Flow Retail API version 2
  license:
    name: Proprietary
    url: 'https://www.flowretail.no'
  title: Flow Retail API version 2
  version: 2.0.0
openapi: 3.0.2
paths:
  /account:
    get:
      description: Get full account information for a logged-in user. This will return information for all tenants the user has access to.
      operationId: get-account
      responses:
        '200':
          $ref: '#/components/responses/AccountResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get full account info
      tags:
        - User
    put:
      description: Update global information about logged in user
      operationId: put-account
      requestBody:
        $ref: '#/components/requestBodies/AccountUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/AccountResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update global account information
      tags:
        - User
    post:
      summary: Login user
      operationId: post-account
      responses:
        '200':
          $ref: '#/components/responses/AccountLoginResponse'
      description: |-
        Login as a tenant user

        Requires a valid deviceToken
      security:
        - deviceToken: []
      requestBody:
        $ref: '#/components/requestBodies/AccountLoginRequest'
      tags:
        - User
  /countries:
    get:
      description: List all countries.
      operationId: get-countries
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/CountryListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List countries
      tags:
        - Config
      x-internal: false
  '/countries/{countryUid}':
    get:
      description: Get details for a country
      operationId: get-country-details
      responses:
        '200':
          $ref: '#/components/responses/CountryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get country details
      tags:
        - Config
    parameters:
      - $ref: '#/components/parameters/countryUid'
  /device:
    get:
      description: Fetch device info for current device given in token
      operationId: get-device-info
      responses:
        '200':
          $ref: '#/components/responses/DeviceInfoResponse'
      security:
        - accessToken: []
        - deviceToken: []
      summary: Get device information
      tags:
        - Device
    parameters: []
    post:
      description: |-
        Register a new device for authorization.

        You should already have a clientId supplied by Flow, and you will retreive a deviceIdentifier and deviceToken in the response.
      operationId: post-device-register
      responses:
        '200':
          $ref: '#/components/responses/DeviceAuthorizationResponse'
      summary: Register a new device (deprecated)
      tags:
        - Device
      x-internal: false
      requestBody:
        $ref: '#/components/requestBodies/DeviceRegisterRequest'
      deprecated: true
    put:
      summary: Update systemInformation for a device
      operationId: put-device
      responses:
        '204':
          description: No Content
      description: |
        Update system information for a device.
      x-internal: false
      security:
        - deviceToken: []
      requestBody:
        $ref: '#/components/requestBodies/DeviceUpdateRequest'
      tags:
        - Device
  /device/authorize:
    parameters: []
    post:
      description: Device Authorization Flow - Authorize a device and attach it to a specific store
      operationId: post-device-authorize
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Accept Device (deprecated)
      tags:
        - Device
      x-internal: false
      requestBody:
        $ref: '#/components/requestBodies/DeviceAuthorizeRequest'
      deprecated: true
  '/device/{deviceCode}/link':
    parameters:
      - schema:
          type: string
        name: deviceCode
        in: path
        required: true
        description: Device code from backoffice
    post:
      description: Link a physical device to a device registered in Flow.
      operationId: post-device-link
      responses:
        '200':
          $ref: '#/components/responses/DeviceLinkResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
        '404':
          description: Not found
      summary: Link a physical device
      tags:
        - Device
      x-internal: false
      requestBody:
        $ref: '#/components/requestBodies/DeviceLinkRequest'
      x-stoplight:
        id: 2g0b4dalayc5t
  /device/token:
    parameters: []
    post:
      description: Device Authorization Flow - Request a new token
      operationId: post-device-token
      responses:
        '200':
          $ref: '#/components/responses/DeviceAuthorizationTokenResponse'
        '400':
          $ref: '#/components/responses/DeviceAuthorizationErrorResponse'
        '404':
          description: Not Found
      summary: Request a new device token
      tags:
        - Device
      x-internal: false
      requestBody:
        $ref: '#/components/requestBodies/DeviceTokenRequest'
  /device/users:
    parameters: []
    get:
      description: List all users that can login to the current device.
      operationId: get-device-users
      responses:
        '200':
          $ref: '#/components/responses/DeviceUserListResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - deviceToken: []
      summary: List device users
      tags:
        - Device
      x-internal: false
      x-stoplight:
        id: 1a1akjzibro5a
      parameters:
        - $ref: '#/components/parameters/TenantAccountTypeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
  /flowboxes:
    parameters: []
    post:
      description: 'The Flowbox identifies itself and get an activationCode, flowboxIdentifier and flowboxUid in return.'
      operationId: post-flowboxes
      requestBody:
        $ref: '#/components/requestBodies/FlowboxAutoRegisterRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxAutoRegisterResponse'
      summary: Flowbox Auto-Register
      tags:
        - Flowbox
      x-internal: true
  '/flowboxes/{flowboxUid}':
    delete:
      description: Deletes a Flowbox from the database along with store connection and all connected peripherals.
      operationId: delete-flowboxes-details
      responses:
        '204':
          description: No Content
      security:
        - flowboxToken: []
      summary: Delete a Flowbox
      tags:
        - Flowbox
      x-internal: true
    get:
      description: Get details for a Flowbox.
      operationId: get-flowboxes-details
      responses:
        '200':
          $ref: '#/components/responses/FlowboxResponse'
      security:
        - flowboxToken: []
      summary: Get Flowbox details
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
    post:
      description: Get a token and connection string for the flowbox
      operationId: post-flowboxes-token
      requestBody:
        $ref: '#/components/requestBodies/FlowboxTokenCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxTokenResponse'
        '400':
          $ref: '#/components/responses/DeviceAuthorizationErrorResponse'
        '404':
          description: Not Found
      summary: Flowbox get token
      tags:
        - Flowbox
      x-internal: true
    put:
      description: Updates details for a Flowbox.
      operationId: put-flowboxes-details
      requestBody:
        $ref: '#/components/requestBodies/FlowboxUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxResponse'
      security:
        - flowboxToken: []
      summary: Update Flowbox details
      tags:
        - Flowbox
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/flowboxes/{flowboxUid}':
    delete:
      description: Deletes a Flowbox from the database along with store connection and all connected peripherals.
      operationId: delete-tenants-stores-flowboxes-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a Flowbox
      tags:
        - Flowbox
      x-internal: true
    get:
      description: Get details for a Flowbox.
      operationId: get-tenants-stores-flowboxes-details
      responses:
        '200':
          $ref: '#/components/responses/FlowboxResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Flowbox details
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    put:
      description: Updates details for a Flowbox.
      operationId: put-tenants-stores-flowboxes-details
      requestBody:
        $ref: '#/components/requestBodies/FlowboxUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update Flowbox details
      tags:
        - Flowbox
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs':
    post:
      summary: Create a new accounting configs entry
      operationId: post-accountingConfigs
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountingConfigsSchema'
      x-stoplight:
        id: mxwy0u0kk6zd4
      description: |-
        **This endpoint is mostly legacy, and for internal use. We recommend to use the other endpoints to manage accounting information**

        Creates a new accounting config entry for the supplied store

        For configType `ACCOUNTNUMBER` is the following keys valid:
        Key | Description 
        ---------|----------
         CUSTOMER | Account for customer  
         CUSTOMERDUMMY | Dummy customer account
         ERROR | Error account, if no valid account is found
         PARTYLYPAIDINVOICE | Account for partyly paid invoices
         VATCODE |Account for a specific tax type
         CASHFLOAT_DEPOSIT| Deposit cash float into the cash register
         CASHFLOAT_WITHDRAWAL | Withdraw cash float from the cash register
         CASHFLOAT_TO_BANK | Withdraw cash float and transfer it to the bank
         CASHFLOAT_EXPENSE_WITHDRAWAL | Withdraw cash float for expenses throughout the day.
         CASHFLOAT_DIFF | Account for cash register till count discrepancies

        For configType `TREATCODE` is the following keys valid:
        Key | Description 
        ---------|----------
         CREDITLEDGER |  Used to credit notes
         GENERALLEDGER | Used for general ledger
         LEDGE | Used for invoices and other ledger
         PAYMENT | Used for payment of invoices

        For configType `VAT_TYPE_ID` is the following keys valid:
        Key | Description 
        ---------|----------
         BALANCE |  
         VATCODE | Should have a vatCodeUid filled together with the TypeID for the specific VAT code
        "

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsRequest'
      tags:
        - AccountingConfigs
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
    get:
      description: Lists all accounting configs entries belonging to the supplied store
      operationId: list-accountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/accountingConfigsListResponse'
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      summary: List accounting configs entries
      x-internal: false
      x-stoplight:
        id: ptxp7nlefwvjm
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - AccountingConfigs
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/{accountingConfigUid}':
    get:
      description: Get accounting configs entry for the supplied accountingConfigsUid
      operationId: get-accountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsResponse'
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      summary: Get accounting configs entry
      x-internal: false
      parameters: []
      tags:
        - AccountingConfigs
      x-stoplight:
        id: zkabq04zwluv2
    put:
      description: |-
        Updates the accounting configs entry belonging to the supplied accountingConfigsUid

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      operationId: put-accountingConfigs
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsResponse'
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      summary: Update accounting config entry
      x-internal: false
      tags:
        - AccountingConfigs
      x-stoplight:
        id: 0pht3zgk5unxm
    delete:
      description: |-
        Deletes the accounting configs entry belonging the supplied accountingConfigsUid

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      operationId: delete-accountingConfigs
      responses:
        '204':
          description: ''
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      summary: Delete accounting config entry
      x-internal: false
      parameters: []
      tags:
        - AccountingConfigs
      x-stoplight:
        id: vommbmfnrwc9z
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/accountingConfigUid'
  '/flowboxes/{flowboxUid}/peripherals':
    get:
      description: List all peripherals connected to the Flowbox.
      operationId: get-flowboxes-peripherals
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/flowboxPeripheralTypeQuery'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralListResponse'
      security:
        - flowboxToken: []
      summary: List Flowbox peripherals
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
    post:
      description: Registers a new peripheral with the Flowbox.
      operationId: post-flowboxes-peripherals
      requestBody:
        $ref: '#/components/requestBodies/FlowboxPeripheralCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralResponse'
      security:
        - flowboxToken: []
      summary: Auto-register a Flowbox peripheral
      tags:
        - Flowbox
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/flowboxes/{flowboxUid}/peripherals':
    get:
      description: List all peripherals connected to the Flowbox.
      operationId: get-tenants-stores-flowboxes-peripherals
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/flowboxPeripheralTypeQuery'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List Flowbox peripherals
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
  '/flowboxes/{flowboxUid}/peripherals/{flowboxPeripheralUid}':
    get:
      description: Get details for a peripheral connected to a Flowbox.
      operationId: get-flowboxes-peripherals-details
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralResponse'
        '404':
          description: Not Found
      security:
        - flowboxToken: []
      summary: Get Flowbox peripheral details
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
      - $ref: '#/components/parameters/flowboxPeripheralUid'
    put:
      description: Update details about a peripheral connected to a Flowbox. Partial updates are allowed.
      operationId: put-flowboxes-peripherals-details
      requestBody:
        $ref: '#/components/requestBodies/FlowboxPeripheralUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralResponse'
      security:
        - flowboxToken: []
      summary: Update Flowbox peripheral details
      tags:
        - Flowbox
      x-internal: true
    delete:
      summary: Delete Flowbox peripheral details
      operationId: delete-flowboxes-peripherals-details
      responses:
        '204':
          description: No Content
      security:
        - flowboxToken: []
      description: Delete Flowbox peripheral
      tags:
        - Flowbox
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/flowboxes/{flowboxUid}/peripherals/{flowboxPeripheralUid}':
    get:
      description: Get details for a peripheral connected to a Flowbox.
      operationId: get-tenants-stores-flowboxes-peripherals-details
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralResponse'
        '404':
          description: Not Found
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Flowbox peripheral details
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/flowboxUid'
      - $ref: '#/components/parameters/flowboxPeripheralUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    put:
      description: Update details about a peripheral connected to a Flowbox. Partial updates are allowed.
      operationId: put-tenants-stores-flowboxes-peripherals-details
      requestBody:
        $ref: '#/components/requestBodies/FlowboxPeripheralUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update Flowbox peripheral details
      tags:
        - Flowbox
      x-internal: true
    delete:
      summary: Delete Flowbox peripheral details
      operationId: delete-tenants-stores-flowboxes-peripherals-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Delete Flowbox peripheral
      tags:
        - Flowbox
  /health:
    get:
      summary: Health status of application
      tags:
        - Internal
      operationId: get-health
      responses:
        '200':
          $ref: '#/components/responses/HealthStatusResponse'
        '503':
          $ref: '#/components/responses/HealthStatusResponse'
      x-internal: true
      description: Will check status of all services that flowcore is depending on to work.
    head:
      description: Your HEAD endpoint
      summary: Your HEAD endpoint
      tags:
        - Internal
      responses:
        '200':
          description: No Content
      operationId: head-health
      x-stoplight:
        id: stnhl27by2tnt
  /paymentmethods:
    get:
      description: Get list of all payment methods in flowRetail
      operationId: get-paymentmethods
      responses:
        '200':
          $ref: '#/components/responses/PaymentMethodListResponse'
      summary: Get list of all payment methods available in Flow Retail
      tags:
        - PaymentMethod
      x-internal: false
      parameters:
        - $ref: '#/components/parameters/tenantUidQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    parameters: []
  /tenants:
    get:
      description: |-
        Listing all tenant the user has access to.

        Required permissions: TENANT
      operationId: get-tenants
      x-flow-permissions: TENANT
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/TenantListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List tenants
      tags:
        - Tenant
      x-internal: false
    parameters: []
    post:
      description: |-
        Internal endpoint for creating a new tenant.

        Required permissions: SUPER_ADMIN
      operationId: post-tenants
      x-flow-permissions: SUPER_ADMIN
      requestBody:
        $ref: '#/components/requestBodies/TenantCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new tenant
      tags:
        - Tenant
      x-internal: true
  /tenants/onboard:
    post:
      description: |-
        Onboards a new tenant to a minimum working state.

        Required permissions: SUPER_ADMIN
      operationId: post-tenants-onboard
      x-flow-permissions: SUPER_ADMIN
      requestBody:
        $ref: '#/components/requestBodies/TenantOnboardRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantOnboardResponse'
      security:
        - authToken: []
      summary: Onboard tenant
      tags:
        - Tenant
      x-internal: true
  '/tenants/{tenantUid}':
    delete:
      description: |-
        Internal endpoint for deleting a tenant.

        Required permissions: SUPER_ADMIN
      operationId: delete-tenants-details
      x-flow-permissions: SUPER_ADMIN
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a tenant
      tags:
        - Tenant
      x-internal: true
    get:
      description: Internal endpoint for details for a tenant.
      operationId: get-tenants-details
      responses:
        '200':
          $ref: '#/components/responses/TenantResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get tenant details
      tags:
        - Tenant
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for a tenant.

        Required permissions: TENANT
      x-flow-permissions: TENANT
      operationId: put-tenants-details
      requestBody:
        $ref: '#/components/requestBodies/TenantUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update tenant details
      tags:
        - Tenant
      x-internal: false
  '/tenants/{tenantUid}/account':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      description: Get tenant information about logged-in user
      operationId: get-tenants-account
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get account info for a specific tenant
      tags:
        - User
    put:
      description: Update information about logged in user
      operationId: put-tenants-account
      requestBody:
        $ref: '#/components/requestBodies/TenantAccountUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update account info
      tags:
        - User
    post:
      summary: Generate accessToken from authToken
      operationId: post-tenants-account
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      x-stoplight:
        id: lq0weiwmruggo
      security:
        - authToken: []
      description: Generate access token from auth token
      tags:
        - User
  /account/invite:
    get:
      description: Get information about invitation to a tenant
      operationId: get-account-invite
      parameters:
        - description: invite token
          in: header
          name: x-invite-token
          required: true
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/TenantInviteInformationResponse'
      security: []
      summary: Get tenant invitation information
      tags:
        - User
    parameters: []
    put:
      description: Accept invitation to a tenant
      operationId: put-account-invite
      requestBody:
        $ref: '#/components/requestBodies/TenantAccountAcceptInviteRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      summary: Accept tenant invitation
      tags:
        - User
      security:
        - authToken: []
  '/tenants/{tenantUid}/brands':
    get:
      description: List all brands.
      operationId: get-tenants-brands
      parameters:
        - $ref: '#/components/parameters/brandNameQuery'
        - $ref: '#/components/parameters/brandExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/BrandListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List brands
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new brand.

        Required permissions: BRAND
      operationId: post-tenants-brands
      x-flow-permissions: BRAND
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/BrandCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/BrandResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new brand
      tags:
        - Product
  '/tenants/{tenantUid}/brands/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: '''Searches for brands based on criteria set in the request body. Required permissions: TENANT.ACCESS'''
      operationId: post-tenants-brands-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/BrandSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/BrandListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search brands
      tags:
        - Product
  '/tenants/{tenantUid}/brands/{brandUid}':
    delete:
      description: |-
        Deletes the a brand.

        Required permissions: BRAND
      operationId: delete-tenants-brands-details
      x-flow-permissions: BRAND
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a brand
      tags:
        - Product
    get:
      description: Get details for a brand.
      operationId: get-tenants-brands-details
      responses:
        '200':
          $ref: '#/components/responses/BrandResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get brand details
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/brandUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for a brand. Partial updates are allowed.

        Required permissions: BRAND
      operationId: put-tenants-brands-details
      x-flow-permissions: BRAND
      requestBody:
        $ref: '#/components/requestBodies/BrandUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/BrandResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update brand details
      tags:
        - Product
  '/tenants/{tenantUid}/callbacks/adyen/cloud-terminal':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: Callback from Adyen
      operationId: post-callbacks-adyen-cloudterminal
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      security:
        - adyenAuth: []
      summary: Callback from Adyen (Terminal Notifications)
      tags:
        - Internal
      x-internal: true
  /stripe/callbacks:
    parameters: []
    post:
      description: Callback endpoint for Stripe
      operationId: post-stripe-callbacks
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Callback endpoint for Stripe
      tags:
        - Internal
      x-internal: true
      x-stoplight:
        id: ewi1w6g0jasv8
  '/tenants/{tenantUid}/callbacks/nets/{settlementUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/settlementUid'
    post:
      description: Callback endpoint for Nets
      operationId: post-nets-callbacks
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Callback endpoint for Nets
      tags:
        - Internal
      x-internal: true
      x-stoplight:
        id: frzfu4cpclw
  '/tenants/{tenantUid}/callbacks/dintero/{settlementUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/settlementUid'
    get:
      description: Callback endpoint for Dintero
      operationId: get-dintero-callback
      parameters:
        - schema:
            type: string
          in: query
          name: merchant_reference
          description: merchant reference
          required: true
        - schema:
            type: string
          in: query
          name: session_id
          description: Session id
          required: true
        - schema:
            type: string
          in: query
          name: time
          description: time
          required: true
        - schema:
            type: string
          in: query
          name: transaction_id
          description: transaction id
          required: true
        - schema:
            type: string
          in: query
          name: event_id
          description: event idd
          required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Callback endpoint for Dintero
      tags:
        - Internal
      x-internal: true
      x-stoplight:
        id: zxcvsdfg
  '/tenants/{tenantUid}/callbacks/payex':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: Callback from Payex Terminal
      operationId: post-callbacks-payex
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/PayexCallbackRequest'
      responses:
        '200':
          $ref: '#/components/responses/PayexCallbackResponse'
        '204':
          description: No Content
        '500':
          description: Internal Server Error
      security:
        - accessToken: []
      summary: Callback from Payex Terminal
      tags:
        - Internal
      x-internal: true
  '/tenants/{tenantUid}/callbacks/vipps/v2/payments/{vippsOrderId}':
    parameters:
      - $ref: '#/components/parameters/vippsOrderId'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: Callback from VIPPS
      operationId: post-callbacks-vipps
      parameters:
        - description: AuthToken generated by Flow
          in: header
          name: Authorization
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/VippsCallbackRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Callback from VIPPS
      tags:
        - Internal
      x-internal: true
  '/tenants/{tenantUid}/callbacks/swish/{settlementUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/settlementUid'
    post:
      description: Callback endpoint for Swish
      operationId: post-swish-callbacks
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Callback endpoint for Swish
      tags:
        - Internal
      x-internal: true
      x-stoplight: null
  '/tenants/{tenantUid}/callbacks/softpay':
    post:
      description: Webhook endpoint for Softpay
      operationId: post-softpay-callback
      parameters:
        - $ref: '#/components/parameters/tenantUid'
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      summary: Webhook endpoint for Softpay
      tags:
        - Internal
      x-internal: true
      x-stoplight:
        id: frzfu4cpclw
  '/tenants/{tenantUid}/callbacks/klaviyo':
    post:
      description: 'Inbound Klaviyo webhook for consent changes (email / SMS marketing / SMS transactional). HMAC-SHA256 over raw body, signed with the tenant''s KLAVIYO_WEBHOOK_SECRET, carried in Klaviyo-Signature. Unmapped metrics no-op.'
      operationId: post-callbacks-klaviyo
      parameters:
        - $ref: '#/components/parameters/tenantUid'
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      responses:
        '204':
          description: No Content
        '500':
          description: Internal Server Error
      summary: Klaviyo subscription webhook
      tags:
        - Internal
      x-internal: true
  '/tenants/{tenantUid}/categories':
    get:
      description: List all root categories
      operationId: get-tenants-categories
      parameters:
        - $ref: '#/components/parameters/withProductsQuery'
        - $ref: '#/components/parameters/categoryParentUidQuery'
        - $ref: '#/components/parameters/categoryExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/CategoryListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List categories
      tags:
        - Categories
      x-stoplight:
        id: khjbfjsfgzpyo
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      description: |-
        Create a new category.

        Required permissions: CATEGORY
      operationId: post-tenants-categories
      x-flow-permissions: CATEGORY
      requestBody:
        $ref: '#/components/requestBodies/CategoryCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new category
      tags:
        - Categories
      x-stoplight:
        id: 43p1btfs7fb2s
  '/tenants/{tenantUid}/categories/{categoryUid}':
    delete:
      description: |-
        This will delete a category and all its sub-categories.

        Required permissions: CATEGORY
      operationId: delete-tenants-categories-details
      x-flow-permissions: CATEGORY
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a category
      tags:
        - Categories
    get:
      description: |-
        Get category details 

        If storeUid is supplied prices and stock from the store will be returned, if no storeUid is supplied the quantityStock will always be 0 and the price will be the reccommended retail price
      operationId: get-tenants-categories-details
      parameters:
        - $ref: '#/components/parameters/categoriesStoreUidQuery'
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Category details
      tags:
        - Categories
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/categoryUid'
    put:
      description: |-
        Update a category

        Required permissions: CATEGORY
      operationId: put-tenants-categories-details
      x-flow-permissions: CATEGORY
      requestBody:
        $ref: '#/components/requestBodies/CategoryUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CategoryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update category
      tags:
        - Categories
  '/tenants/{tenantUid}/consents':
    get:
      description: List all consents.
      operationId: get-tenants-consents
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ConsentListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List consents
      x-stoplight:
        id: pfr2fk74hcngt
      tags:
        - CustomerConsent
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new consent type

        Required permissions: CONSENT
      operationId: post-tenants-consents
      x-flow-permissions: CONSENT
      requestBody:
        $ref: '#/components/requestBodies/ConsentCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/ConsentResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new consent
      x-stoplight:
        id: 6jnus24ss2c1a
      tags:
        - CustomerConsent
  '/tenants/{tenantUid}/consents/{consentUid}':
    get:
      description: Get a consent type
      operationId: get-tenants-consents-details
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/ConsentResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get consent
      x-stoplight:
        id: erl3bnfvobhl9
      tags:
        - CustomerConsent
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/consentUid'
    put:
      summary: Update consent
      tags:
        - CustomerConsent
      responses:
        '200':
          $ref: '#/components/responses/ConsentResponse'
      operationId: put-tenants-consents-details
      description: |-
        Update a consent type

        Required permissions: CONSENT
      x-flow-permissions: CONSENT
      x-stoplight:
        id: i7v5ce1dmidcp
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ConsentUpdateRequest'
    delete:
      summary: Delete a consent
      tags:
        - CustomerConsent
      responses:
        '204':
          description: No Content
      operationId: delete-tenants-consents-details
      description: |-
        Delete a consent type

        Required permissions: CONSENT
      x-flow-permissions: CONSENT
      x-stoplight:
        id: v30h9mg05qkl8
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customer-contacts':
    get:
      description: List all customer contacts.
      operationId: get-tenants-customer-contacts
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List contacts
      x-stoplight:
        id: 4cyz44v4dp1ll
      tags:
        - CustomerContact
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new customer contact

        Required permissions: CUSTOMER,SALES_ORDER,RETURN_ORDER
      operationId: post-tenants-customer-contacts
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactsCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/CustomerContactsResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new contact
      x-stoplight:
        id: bgj16bj8myetu
      x-flow-permissions: 'CUSTOMER,SALES_ORDER,RETURN_ORDER'
      tags:
        - CustomerContact
  '/tenants/{tenantUid}/customer-contacts/search':
    post:
      description: Search for customer contacts
      operationId: post-tenants-contacts-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for customer contacts
      x-stoplight:
        id: bgj16bj8myetu
      tags:
        - CustomerContact
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/customer-contacts/{customerContactUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerContactUid'
    get:
      summary: Get customer contact information
      tags:
        - CustomerContact
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsResponse'
      operationId: get-tenants-contact-details
      x-stoplight:
        id: 5oh4mzjofuxtn
      description: Get details about a customer contact.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-flow-permissions: 'CUSTOMER,SALES_ORDER,RETURN_ORDER'
    put:
      summary: Update customer contact information
      tags:
        - CustomerContact
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsResponse'
      operationId: put-tenants-customer-contact-details
      x-stoplight:
        id: l3ii2wu2knd0u
      x-flow-permissions: 'CUSTOMER,SALES_ORDER,RETURN_ORDER'
      description: 'Required permissions: CUSTOMER,SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactUpdateRequest'
    delete:
      summary: Remove a customer contact
      tags:
        - CustomerContact
      responses:
        '204':
          description: OK
      operationId: delete-tenants-customer-contacts
      x-stoplight:
        id: ib93u4mxw6cqx
      x-flow-permissions: CUSTOMER
      description: 'Required permissions: CUSTOMER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customer-contacts/{customerContactUid}/customers':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerContactUid'
    get:
      summary: List all customers for a contact
      tags:
        - CustomerContact
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsCustomerListResponse'
      operationId: get-tenants-customer-contacts-customers
      x-stoplight:
        id: ax7dj417hpmxu
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: List all customers a contact is connected to
    post:
      summary: Add a customer-contact to a customer
      tags:
        - CustomerContact
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactsCustomerListResponse'
      operationId: post-tenants-customer-contacts-customers
      x-stoplight:
        id: vpdpw1npy6ade
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactAddCustomersRequest'
      x-flow-permissions: 'CUSTOMER,SALES_ORDER,RETURN_ORDER'
      description: 'Required permissions: CUSTOMER,SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customer-contacts/{customerContactUid}/customers/{customerUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerContactUid'
      - $ref: '#/components/parameters/customerUid'
    delete:
      summary: Remove a customer for a contact
      tags:
        - CustomerContact
      responses:
        '204':
          description: Customer removed
      operationId: delete-tenants-customer-contacts-customers
      x-stoplight:
        id: ax7dj417hpmxu
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Remove a customer from a contact

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
  '/tenants/{tenantUid}/customers':
    get:
      description: List all customers.
      operationId: get-tenants-customers
      parameters:
        - $ref: '#/components/parameters/customerExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/CustomerListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List customers
      tags:
        - Customer
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: Create a new customer
      operationId: post-tenants-customers
      requestBody:
        $ref: '#/components/requestBodies/CustomerCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/CustomerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new customer
      tags:
        - Customer
  '/tenants/{tenantUid}/customers/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        The `query` field searches on: firstName, lastName, city, postalCode, companyName, mobile, email and vatNumber.  
        If `scope` is not set, customer scope is used. 
        When mobile, email or vatNumber is specified, the according field is not searched by the query field value.
      operationId: post-tenants-customers-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/CustomerSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search customers
      tags:
        - Customer
  '/tenants/{tenantUid}/customers/search/external':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: External search for customers
      operationId: post-tenants-customers-search-external
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/CustomerExternalSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerExternalListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: External search for customers
      tags:
        - Customer
  '/tenants/{tenantUid}/company-registry/lookup':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: 'Look up company information from external registries (e.g. Brønnøysundregistrene, Vatify). Returns an empty items array if no match is found.'
      operationId: post-tenants-company-registry-lookup
      requestBody:
        $ref: '#/components/requestBodies/CompanyRegistryLookupRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Look up company in external registry
      tags:
        - CompanyRegistry
  '/tenants/{tenantUid}/customers/{customerUid}/export':
    get:
      description: |-
        Intended for GDPR Compliance  \
        Export customer data in structured form.  \
        JSON is the only available format now \
      operationId: tenant-customer-data-export
      responses:
        '200':
          $ref: '#/components/responses/CustomerExportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Export customer data in structured form. JSON is the only available format now
      tags:
        - Customer
        - GDPR
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerUid'
  '/tenants/{tenantUid}/customers/{customerUid}/print':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerUid'
    post:
      summary: Print customer membership card
      tags:
        - Customer
      responses:
        '204':
          description: No Content
      operationId: post-tenants-customers-print
      x-stoplight:
        id: ow41zwkpcn6no
      description: Print a label or a receipt with a barcode that can be used to scan for easy customer registration
      requestBody:
        $ref: '#/components/requestBodies/CustomerPrintRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/{customerUid}':
    delete:
      description: |-
        Deletes a customer.

        Required permissions: CUSTOMER
      operationId: delete-tenants-customers-details
      x-flow-permissions: CUSTOMER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a customer
      tags:
        - Customer
    get:
      description: Get details for a customer.
      operationId: get-tenants-customers-details
      responses:
        '200':
          $ref: '#/components/responses/CustomerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get customer details
      tags:
        - Customer
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: 'Partial updates are allowed.  '
      operationId: put-tenants-customers-details
      requestBody:
        $ref: '#/components/requestBodies/CustomerUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update customer details
      tags:
        - Customer
  '/tenants/{tenantUid}/customers/{customerUid}/extensions/{customerExtensionCode}':
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerExtensionCode'
    post:
      description: |-
        Add an extension to a customer

        Required permissions: CUSTOMER
      operationId: post-tenant-customer-extensions
      summary: Add an extension to a customer
      x-flow-permissions: CUSTOMER
      responses:
        '200':
          $ref: '#/components/responses/CustomerResponse'
      x-stoplight:
        id: thuailrbigkzr
      requestBody:
        $ref: '#/components/requestBodies/CustomerExtensionRequest'
      tags:
        - Customer
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete an extension to a customer
      operationId: delete-tenant-customer-extensions
      description: |-
        Delete an extension to a customer

        Required permissions: CUSTOMER
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: 9ysdcunf6gqw6
      tags:
        - Customer
      requestBody:
        $ref: '#/components/requestBodies/CustomerExtensionRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/{customerUid}/consents/{consentUid}':
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/consentUid'
    post:
      summary: Add a consent change to a customer
      operationId: post-tenant-customer-consents
      description: |-
        Add a consent change to a customer

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      responses:
        '200':
          $ref: '#/components/responses/CustomerConsentResponse'
      requestBody:
        $ref: '#/components/requestBodies/CustomerConsentChangeRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 5rinr1kyd1sca
      tags:
        - CustomerConsent
    get:
      summary: List consent history for a customer
      tags:
        - CustomerConsent
      responses:
        '200':
          $ref: '#/components/responses/CustomerConsentHistoryResponse'
      operationId: get-tenants-customers-consents
      x-stoplight:
        id: 52mav95lz5wch
      description: |-
        List the history of a specific consent type for a customer.

        The list is sorted by createdAt, where the newest history element is first
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/{customerUid}/contacts':
    get:
      description: List contacts for a customer
      operationId: get-tenant-customer-contacts
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List contacts for a customer
      x-stoplight:
        id: hz67c4xrd9blj
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - CustomerContact
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new contact and add it to a customer

        Required permissions: CUSTOMER,SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'CUSTOMER,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenant-customer-contacts
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new contact and add it to a customer
      x-stoplight:
        id: 1av0g6pw2jghd
      tags:
        - CustomerContact
  '/tenants/{tenantUid}/customers/{customerUid}/contacts/{customerContactUid}':
    delete:
      description: Delete a contact for a customer.
      operationId: delete-tenant-customer-contact-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a contact for a customer
      x-stoplight:
        id: o12byqx97jizo
      tags:
        - CustomerContact
    get:
      description: Get contact details for a customer
      operationId: get-tenant-customer-contact-details
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get contact details for a customer
      x-stoplight:
        id: iybyxb2h3i0tn
      tags:
        - CustomerContact
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerContactUid'
    put:
      description: Update contact details for a customer. Partial updates are allowed.
      operationId: put-tenant-customer-contact-details
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update contact details for a customer
      x-stoplight:
        id: wrgg8a02l3mod
      tags:
        - CustomerContact
  '/tenants/{tenantUid}/customers/{customerUid}/contacts/{customerContactUid}/extensions/{customerExtensionCode}':
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerContactUid'
      - $ref: '#/components/parameters/customerExtensionCode'
    post:
      summary: Add extension to a customer contact
      operationId: post-tenant-customer-contact-extensions
      responses:
        '200':
          $ref: '#/components/responses/CustomerContactResponse'
      x-stoplight:
        id: j5igk07jugxwt
      description: |-
        Add extension to a customer contact

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactExtensionRequest'
      tags:
        - CustomerContact
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete extension from a customer contact
      operationId: delete-tenant-customer-contact-extensions
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: 0renlqppg498l
      description: Delete extension from a customer contact
      tags:
        - CustomerContact
      requestBody:
        $ref: '#/components/requestBodies/CustomerContactExtensionRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/{customerUid}/addresses':
    get:
      description: List addresses for a customer.
      operationId: get-tenant-customer-addresses
      responses:
        '200':
          $ref: '#/components/responses/CustomerAddressListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List addresses for a customer
      x-stoplight:
        id: 524rhcd5yrn2w
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - CustomerAddress
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Add an address for a customer.

        Required permissions: CUSTOMER
      operationId: post-tenant-customer-addresses
      x-flow-permissions: CUSTOMER
      requestBody:
        $ref: '#/components/requestBodies/CustomerAddressCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerAddressResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add an address for a customer
      x-stoplight:
        id: vqrkb8s7cm3nz
      tags:
        - CustomerAddress
  '/tenants/{tenantUid}/customers/{customerUid}/addresses/{customerAddressUid}':
    delete:
      description: |-
        Delete an address for a customer.

        Required permissions: CUSTOMER
      operationId: delete-tenant-customer-address-details
      x-flow-permissions: CUSTOMER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an address for a customer
      x-stoplight:
        id: zie6o7yl03h5i
      tags:
        - CustomerAddress
    get:
      description: Get address details for a customer.
      operationId: get-tenant-customer-address-details
      responses:
        '200':
          $ref: '#/components/responses/CustomerAddressResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get address details for a customer
      x-stoplight:
        id: 8k2qxnrpt3v9a
      tags:
        - CustomerAddress
    parameters:
      - $ref: '#/components/parameters/customerUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerAddressUid'
    put:
      description: |-
        Update details for a customer. Partial updates are allowed.

        Required permissions: CUSTOMER
      operationId: put-tenant-customer-address-details
      x-flow-permissions: CUSTOMER
      requestBody:
        $ref: '#/components/requestBodies/CustomerAddressUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerAddressResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update address details for a customer
      x-stoplight:
        id: v96d49kpr9bbh
      tags:
        - CustomerAddress
  '/tenants/{tenantUid}/devices':
    post:
      summary: Create a new device
      tags:
        - Device
      responses:
        '201':
          $ref: '#/components/responses/DeviceResponse'
        '400':
          description: Bad Request
      operationId: post-tenants-devices
      description: |-
        Create a new device for a tenant

        Required permissions: DEVICE
      x-flow-permissions: DEVICE
      x-stoplight:
        id: dgke4macfmr5s
      requestBody:
        $ref: '#/components/requestBodies/DeviceCreateRequest'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
    get:
      description: |-
        Get list of registered devices.


        The settings field will contain all the available settings for this device. The settings list can vary depending on the appcode.

        Required permissions: DEVICE
      operationId: get-tenants-devices
      x-flow-permissions: DEVICE
      parameters:
        - $ref: '#/components/parameters/deviceStoreUidQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/DeviceListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: List registered devices
      tags:
        - Device
      x-stoplight:
        id: z4fyxj1i1jpfz
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/devices/search':
    post:
      description: |-
        Search Registered devices

        Required permissions: DEVICE
      operationId: post-search-tenants-devices
      x-flow-permissions: DEVICE
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/DeviceListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Search registered devices
      tags:
        - Device
      x-stoplight:
        id: gkrbtqg6wto0b
      requestBody:
        $ref: '#/components/requestBodies/DeviceSearchRequest'
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/devices/{deviceUid}':
    delete:
      description: |-
        Deletes a device.

        Required permissions: DEVICE
      operationId: delete-tenants-device
      x-flow-permissions: DEVICE
      responses:
        '204':
          description: No Content
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Delete a device
      tags:
        - Device
    get:
      description: |-
        Get details for a device.

        Required permissions: DEVICE
      operationId: get-tenants-devices-details
      x-flow-permissions: DEVICE
      responses:
        '200':
          $ref: '#/components/responses/DeviceResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get device details
      tags:
        - Device
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deviceUid'
    put:
      description: |-
        Update details for a device. Partial updates are allowed.


        Setting the status to "READY_TO_LINK" will unlink it for the current device and create a new deviceLinkCode and a new identifier

        Required permissions: DEVICE
      operationId: put-tenants-device-details
      x-flow-permissions: DEVICE
      requestBody:
        $ref: '#/components/requestBodies/TenantDeviceUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/DeviceResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Update device details
      tags:
        - Device
  '/tenants/{tenantUid}/delivery-providers':
    get:
      description: List all delivery providers
      operationId: get-tenant-delivery-providers
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/deliveryProviderQuery'
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List delivery Providers
      x-stoplight:
        id: 6vltt0sjba7mr
      tags:
        - DeliveryProvider
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new delivery provider

        Required permissions: DELIVERY_METHOD
      operationId: post-tenant-delivery-providers
      x-flow-permissions: DELIVERY_METHOD
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/DeliveryProviderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new delivery provider
      x-stoplight:
        id: 2gcc4t6dusfzm
      tags:
        - DeliveryProvider
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}':
    delete:
      description: |-
        Delete an delivery provider

        Required permissions: DELIVERY_METHOD
      operationId: delete-tenant-delivery-provider-details
      x-flow-permissions: DELIVERY_METHOD
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an delivery provider
      x-stoplight:
        id: wlcgwrj7b660o
      tags:
        - DeliveryProvider
    get:
      description: Get delivery provider details
      operationId: get-tenant-delivery-provider-details
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get delivery provider details
      x-stoplight:
        id: 2g9dfbp0sn2ke
      tags:
        - DeliveryProvider
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
    put:
      operationId: put-tenant-delivery-provider-details
      description: |-
        Update delivery provider details

        Required permissions: DELIVERY_METHOD
      x-flow-permissions: DELIVERY_METHOD
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update delivery provider details
      x-stoplight:
        id: qo7etnlz4iplw
      tags:
        - DeliveryProvider
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods':
    get:
      description: List delivery methods for a delivery Provider
      operationId: get-tenant-delivery-provider-methods
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/deliveryProviderMethodQuery'
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List delivery methods for a delivery Provider
      x-stoplight:
        id: dot4y6z84kezx
      tags:
        - DeliveryMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
    post:
      description: |-
        Create a new delivery provider method

        Required permissions: DELIVERY_METHOD
      operationId: post-tenant-delivery-provider-methods
      x-flow-permissions: DELIVERY_METHOD
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/DeliveryProviderMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new delivery provider method
      x-stoplight:
        id: ohcptxuceioov
      tags:
        - DeliveryMethod
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}':
    delete:
      description: |-
        Delete an delivery provider method

        Required permissions: DELIVERY_METHOD
      operationId: delete-tenant-delivery-provider-method-details
      x-flow-permissions: DELIVERY_METHOD
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a delivery provider method
      x-stoplight:
        id: qohe6dd73yvtt
      tags:
        - DeliveryMethod
    get:
      description: Get delivery provider method details
      operationId: get-tenant-delivery-provider-method-details
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get delivery provider method details
      x-stoplight:
        id: 8nkt6tjsoimb5
      tags:
        - DeliveryMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
    put:
      operationId: put-tenant-delivery-provider-method-details
      description: |-
        Update delivery provider details

        Required permissions: DELIVERY_METHOD
      x-flow-permissions: DELIVERY_METHOD
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update delivery provider method details
      x-stoplight:
        id: ogcno6vyhhnn4
      tags:
        - DeliveryMethod
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}/mappings':
    get:
      description: List all mappings for a delivery provider method
      operationId: get-delivery-provider-method-mappings
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodMappingListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all mappings for a delivery provider method
      parameters:
        - $ref: '#/components/parameters/systemCodeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      x-stoplight:
        id: u2dxb0z3ppnom
      tags:
        - DeliveryMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
    post:
      description: |-
        Create delivery provider method mapping

        Required permissions: DELIVERY_METHOD
      x-flow-permissions: DELIVERY_METHOD
      operationId: post-delivery-provider-method-mapping
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodMappingCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodMappingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create delivery provider method mapping
      x-stoplight:
        id: zpdnearqtqhoz
      tags:
        - DeliveryMethod
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}/mappings/{deliveryProviderMethodMappingUid}':
    put:
      description: Update a mapping for a delivery provider method
      operationId: put-delivery-provider-method-mapping
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodMappingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update a mapping for a delivery provider method
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodMappingUpdateRequest'
      tags:
        - DeliveryMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
      - $ref: '#/components/parameters/deliveryProviderMethodMappingUid'
    delete:
      description: Delete a delivery provider method mapping
      operationId: delete-delivery-provider-method-mapping
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodMappingCreateRequest'
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a delivery provider method mapping
      tags:
        - DeliveryMethod
  '/tenants/{tenantUid}/handlings':
    get:
      description: List all order handlings
      operationId: get-tenants-handlings
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/HandlingListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List handlings
      tags:
        - Handling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new handling.

        Required permissions: HANDLING
      operationId: post-tenants-handlings
      x-flow-permissions: HANDLING
      requestBody:
        $ref: '#/components/requestBodies/HandlingCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/HandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new handling
      tags:
        - Handling
  '/tenants/{tenantUid}/handlings/{handlingUid}':
    delete:
      description: |-
        Delete a handling

        Required permissions: HANDLING
      operationId: delete-tenants-handlings-details
      x-flow-permissions: HANDLING
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a handling
      tags:
        - Handling
    get:
      description: Get handling details
      operationId: get-tenants-handlings-details
      responses:
        '200':
          $ref: '#/components/responses/HandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get handling details
      tags:
        - Handling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/handlingUid'
    put:
      operationId: put-tenants-handlings-details
      description: |-
        Update handling details

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      requestBody:
        $ref: '#/components/requestBodies/HandlingUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/HandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update handling details
      tags:
        - Handling
  '/tenants/{tenantUid}/handlings/{handlingUid}/triggers':
    post:
      operationId: post-handling-trigger-details
      description: |-
        Add a trigger to a handling

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      responses:
        '204':
          $ref: '#/components/responses/HandlingTriggerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add a trigger to a handling
      tags:
        - Handling
      x-stoplight:
        id: cqb3tvnhgp3op
      requestBody:
        $ref: '#/components/requestBodies/HandlingTriggerCreateRequest'
    get:
      description: List handling triggers
      operationId: list-handling-triggers
      responses:
        '200':
          $ref: '#/components/responses/HandlingTriggerListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List handling triggers
      tags:
        - Handling
      x-stoplight:
        id: 1xko63dqg7qwm
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/handlingUid'
  '/tenants/{tenantUid}/handlings/{handlingUid}/triggers/{handlingTriggerUid}':
    put:
      operationId: put-handling-trigger-details
      description: |-
        Update handling trigger details

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      responses:
        '204':
          $ref: '#/components/responses/HandlingTriggerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update handling trigger details
      tags:
        - Handling
      requestBody:
        $ref: '#/components/requestBodies/HandlingTriggerUpdateRequest'
      x-stoplight:
        id: qx1q0jqj2pfig
    get:
      description: Get handling trigger details
      operationId: get-handling-trigger-details
      responses:
        '200':
          $ref: '#/components/responses/HandlingTriggerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get handling trigger details
      tags:
        - Handling
      x-stoplight:
        id: ezse4amebbo27
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/handlingUid'
      - $ref: '#/components/parameters/handlingTriggerUid'
    delete:
      summary: Delete a handling trigger
      tags:
        - Handling
      responses:
        '204':
          description: No Content
      operationId: delete-handling-trigger
      description: |-
        Delete a handling trigger

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      x-stoplight:
        id: 87cypeig0qrr3
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/handlings/{handlingUid}/actions':
    get:
      description: List Handling actions
      operationId: get-tenants-handlings-actions
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/handlingActionStoreUidQuery'
      responses:
        '200':
          $ref: '#/components/responses/HandlingActionListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List Handling actions
      tags:
        - Handling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/handlingUid'
    post:
      operationId: post-tenants-handlings-actions
      description: |-
        Create new handling action

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      requestBody:
        $ref: '#/components/requestBodies/HandlingActionCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/HandlingActionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new handling action
      tags:
        - Handling
  '/tenants/{tenantUid}/handlings/{handlingUid}/actions/{handlingActionUid}':
    delete:
      operationId: delete-tenants-handlings-actions-details
      description: |-
        Delete a handling action

        Required permissions: HANDLING
      x-flow-permissions: HANDLING
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a handling action
      tags:
        - Handling
    get:
      description: Get handling action details
      operationId: get-tenants-handlings-actions-details
      responses:
        '200':
          $ref: '#/components/responses/HandlingActionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get handling action details
      tags:
        - Handling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/handlingUid'
      - $ref: '#/components/parameters/handlingActionUid'
    put:
      description: |-
        Update a handling action

        Required permissions: HANDLING
      operationId: put-tenants-handlings-actions-details
      x-flow-permissions: HANDLING
      requestBody:
        $ref: '#/components/requestBodies/HandlingActionUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/HandlingActionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update a handling action
      tags:
        - Handling
  '/tenants/{tenantUid}/httptransports':
    get:
      description: |-
        List http transport configurations

        Required access: Tenant.Admin
      operationId: get-tenants-httptransports
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/TransportListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List http transport configurations
      tags:
        - Webhooks
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Add http transport configuration to tenant

        Required permissions: WEBHOOK
      operationId: post-tenants-httptransports
      x-flow-permissions: WEBHOOK
      requestBody:
        $ref: '#/components/requestBodies/TransportCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TransportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new http transport configuration on a tenant
      tags:
        - Webhooks
  '/tenants/{tenantUid}/httptransports/{httpTransportUid}':
    delete:
      description: |-
        Deletes a http transport configuration completely from a tenant.

        Required permissions: WEBHOOK
      operationId: delete-tenants-httptransports-details
      x-flow-permissions: WEBHOOK
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a http transport configuration from a tenant
      x-stoplight:
        id: v5ff8mr2m5a9l
      tags:
        - Webhooks
    get:
      description: |-
        Get details for a http transport configuration.

        Required access: Tenant.Admin
      operationId: get-tenants-httptransports-details
      responses:
        '200':
          $ref: '#/components/responses/TransportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get http transport configuration details
      x-stoplight:
        id: y41pun1yrjh43
      tags:
        - Webhooks
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/httpTransportUid'
    put:
      description: |-
        Update http transport configuration for a tenant

        Required permissions: WEBHOOK
      operationId: put-tenants-httptransports-details
      x-flow-permissions: WEBHOOK
      requestBody:
        $ref: '#/components/requestBodies/TransportUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TransportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update tenant http transport configuration
      x-stoplight:
        id: 8qfqwptjv5ofs
      tags:
        - Webhooks
  '/tenants/{tenantUid}/imports/templates':
    get:
      description: List all import templates
      operationId: get-tenants-imports-templates
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportTemplateListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: List all import templates
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Create import template
      operationId: post-tenants-imports-templates
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportTemplateResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportTemplateCreateRequest'
      description: |-
        Create import template

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/imports/templates/{importTemplateUid}':
    get:
      description: |-
        Get import template details.
        When includeLayouts is true, the response contains all layouts for the template.
        If includeConversions is also true, the response also contains all conversions for every layout.
        includeConversions is only honored if  includeLayouts is true

        Required permissions: IMPORT
      x-flow-permissions: IMPORT
      operationId: get-tenants-imports-templates-details
      parameters:
        - $ref: '#/components/parameters/includeLayoutsQuery'
        - $ref: '#/components/parameters/includeConversionsQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportTemplateResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get import template details
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importTemplateUid'
    put:
      summary: Update import template
      operationId: put-tenants-imports-templates-details
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportTemplateResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportTemplateUpdateRequest'
      description: |-
        Update import template

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete an Import template
      operationId: delete-tenants-imports-templates-details
      x-flow-permissions: IMPORT
      responses:
        '204':
          description: No Content
      description: |-
        Delete an Import template

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/imports/templates/{importTemplateUid}/layouts':
    get:
      description: |-
        List layouts for a  import template 

        Required permissions: IMPORT
      operationId: get-tenants-imports-layouts
      x-flow-permissions: IMPORT
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportLayoutListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: List layouts for a  import template
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importTemplateUid'
    post:
      summary: Create layout for an import template
      operationId: post-tenants-imports-layouts
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportLayoutResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportLayoutCreateRequest'
      description: |-
        Create layout for an import template

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/imports/templates/{importTemplateUid}/layouts/{importLayoutUid}':
    get:
      description: |-
        Get import layout details

        Required permissions: IMPORT
      operationId: get-tenants-imports-layouts-details
      x-flow-permissions: IMPORT
      parameters:
        - $ref: '#/components/parameters/includeConversionsQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportLayoutResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get layout details for an import template
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importTemplateUid'
      - $ref: '#/components/parameters/importLayoutUid'
    put:
      summary: Update layout for an import template
      operationId: put-tenants-imports-layouts-detail
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportLayoutResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportLayoutUpdateRequest'
      description: |-
        Update import layout

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete a layout  for an import template
      operationId: delete-tenants-imports-layouts-details
      x-flow-permissions: IMPORT
      responses:
        '204':
          description: No Content
      description: |-
        Delete an Import layout

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/imports/files':
    get:
      description: |-
        List import files. Use query parameter to narrow list

        Required permissions: IMPORT
      operationId: get-tenants-imports-files
      x-flow-permissions: IMPORT
      parameters:
        - $ref: '#/components/parameters/importTemplateUidsQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/importFileStateQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportFilesListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: List import files
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Process or simulate import
      operationId: post-tenants-imports-files
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportFileDataResponse'
      description: |
        This will create and return a new import file record with state `NOT_STARTED` and the `importFileUid`.
        The validation and import is processed in a new thread 
        that will update the import progress every 5 seconds. 
        To fetch the current state, use the `Get import-file details` endpoint.

        Use action `PROCESS` to commit the import upon validation. 
        If no errors occur the import state is `COMPLETE`.

        Use action `SIMULATE` if you do not want to commit the import data and only validat. 
        If no errors occur the import state will be `READY_TO_IMPORT`.

        Use the `Execute import content` endpoint to abort the processing or 
        to commit (execute) a successful simulation.

        Required permissions: IMPORT
      requestBody:
        $ref: '#/components/requestBodies/ImportFileRequest'
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/imports/files/{importFileUid}':
    get:
      description: Get importfile details
      operationId: get-tenants-import-file-details
      x-flow-permissions: IMPORT
      parameters:
        - schema:
            type: boolean
          in: query
          name: light
          description: 'Set this to true to get a lighter version of the response, without the base64encoded version'
      responses:
        '200':
          $ref: '#/components/responses/ImportFileDetailResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get importfile details
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importFileUid'
    post:
      summary: Execute import content
      operationId: post-tenants-imports-file-execute
      description: |-
        Execute import content

        Required permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportFileDataResponse'
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ImportFileJobRequest'
    delete:
      summary: Delete Import file
      operationId: delete-tenants-imports-file-execute
      description: |-
        Delete Import file

        Required permissions: IMPORT
      x-flow-permissions: IMPORT
      responses:
        '200':
          description: OK
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      tags:
        - Import
  '/tenants/{tenantUid}/imports/files/{importFileUid}/download':
    get:
      operationId: get-tenants-import-file-download
      description: |-
        The importfile will be returned as a binary file

        Required permissions: IMPORT
      x-flow-permissions: IMPORT
      parameters: []
      responses:
        '200':
          description: Shared Response
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Download importfile
      tags:
        - Import
      x-stoplight:
        id: dbh1i2ray05uc
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importFileUid'
  '/tenants/{tenantUid}/imports/templates/{importTemplateUid}/layouts/{importLayoutUid}/conversions':
    get:
      description: List conversions for a  import layout
      operationId: get-tenants-imports-conversions
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ImportConversionListResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: List layout conversions
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importTemplateUid'
      - $ref: '#/components/parameters/importLayoutUid'
    post:
      summary: Create layout conversion
      operationId: post-tenants-imports-conversions
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportConversionResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportConversionCreateRequest'
      description: |-
        Create conversion for an import layout

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
  '/tenants/{tenantUid}/imports/templates/{importTemplateUid}/layouts/{importLayoutUid}/conversions/{importConversionUid}':
    get:
      description: Get import layout conversion details
      operationId: get-tenants-imports-conversions-details
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/ImportConversionResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get layout conversion details
      tags:
        - Import
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/importTemplateUid'
      - $ref: '#/components/parameters/importLayoutUid'
      - $ref: '#/components/parameters/importConversionUid'
    put:
      summary: Update layout conversion
      operationId: put-tenants-imports-conversions-details
      x-flow-permissions: IMPORT
      responses:
        '200':
          $ref: '#/components/responses/ImportConversionResponse'
      requestBody:
        $ref: '#/components/requestBodies/ImportConversionUpdateRequest'
      description: |-
        Update import layout

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete a layout conversion
      operationId: delete-tenants-imports-conversions-details
      x-flow-permissions: IMPORT
      responses:
        '204':
          description: No Content
      description: |-
        Delete an Import layout

        Required permissions: IMPORT
      tags:
        - Import
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/number-series':
    get:
      description: List all numberseries for a tenant.
      operationId: get-tenants-number-series
      parameters:
        - $ref: '#/components/parameters/numberSeriesTypeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/NumberSeriesListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get all numberseries
      tags:
        - Store
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |
        Add a new numberseries to a tenant.

        Required permissions: NUMBER_SERIE
      operationId: post-tenants-number-series
      x-flow-permissions: NUMBER_SERIE
      requestBody:
        $ref: '#/components/requestBodies/NumberSeriesCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/NumberSeriesResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add new numberseries
      tags:
        - Store
  '/tenants/{tenantUid}/number-series/{numberSeriesUid}':
    get:
      description: Get a specific numberseries for a tenant.
      operationId: get-tenants-number-series-by-id
      responses:
        '200':
          $ref: '#/components/responses/NumberSeriesResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get a number serie
      tags:
        - Store
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/numberSeriesUid'
    put:
      description: |
        Update numberseries record.

        Required permissions: NUMBER_SERIE
      operationId: put-tenants-number-series-by-id
      x-flow-permissions: NUMBER_SERIE
      requestBody:
        $ref: '#/components/requestBodies/NumberSeriesUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/NumberSeriesResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update a number series record
      tags:
        - Store
  '/tenants/{tenantUid}/orders/{orderUid}':
    get:
      description: Get order by order uid
      operationId: get-tenants-orders-uid
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Order by order uid
      tags:
        - Order
      x-stoplight:
        id: r01eywg9bi6ik
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/orderUid'
  '/tenants/{tenantUid}/paymentmethods':
    get:
      description: List all payment methods available for tenant.
      operationId: get-tenants-paymentmethods
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/tenantPaymentMethodVisibilityQuery'
        - $ref: '#/components/parameters/systemCodeQuery'
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List tenant payment methods
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Add a payment method to the tenant. 

        For external payment methods, `settlementCode` is required. It must have the prefix 
        `EXTERNAL_`.

        For all other payment methods, the payment code is used as the settlement code.

        Required permissions: PAYMENT_METHOD
      operationId: post-tenants-paymentmethods
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add a payment method to tenant
      tags:
        - PaymentMethod
  '/tenants/{tenantUid}/paymentmethods/{tenantPaymentMethodUid}':
    get:
      description: Get paymentmethod details.
      operationId: get-tenants-paymentmethods-details
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get tenant paymentmethod  details
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantPaymentMethodUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update paymentmethod details for tenant.

        `settlementCode` can only be set and updated for EXTERNAL payment methods. It must have the prefix 
        `EXTERNAL_`.

        For all other payment methods, the payment code is used as the settlement code.

        Required permissions: PAYMENT_METHOD
      operationId: put-tenants-paymentmethods-details
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update paymentmethods details
      tags:
        - PaymentMethod
  '/tenants/{tenantUid}/pricelists':
    get:
      description: |-
        List all pricelists.

        Required permissions: PRICELIST
      operationId: get-tenants-pricelists
      x-flow-permissions: PRICELIST
      parameters:
        - $ref: '#/components/parameters/pricelistNameQuery'
        - $ref: '#/components/parameters/pricelistExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PricelistListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List pricelists
      tags:
        - Prices
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new pricelist.

        Required permissions: PRICELIST
      operationId: post-tenants-pricelists
      x-flow-permissions: PRICELIST
      requestBody:
        $ref: '#/components/requestBodies/PricelistCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PricelistResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new pricelist
      tags:
        - Prices
  '/tenants/{tenantUid}/soas':
    get:
      description: |-
        List all SOAs.

        Required permissions: SOA
      operationId: get-tenant-soas
      parameters:
        - $ref: '#/components/parameters/soaNameQuery'
        - $ref: '#/components/parameters/soaExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/SOAListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List SOAs
      x-stoplight:
        id: p9chz1t0lfh7q
      tags:
        - SOA
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new SOA.

        Required permissions: SOA
      operationId: post-tenant-soa-details
      x-flow-permissions: SOA
      requestBody:
        $ref: '#/components/requestBodies/SOACreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/SOAResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new SOA
      x-stoplight:
        id: l80dy0e3ou85k
      tags:
        - SOA
  '/tenants/{tenantUid}/soas/batch':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |
        Creates amounts on a SOA.

        Items in:
          - create :  will be created.
          - update :  will be updated.
          - delete:   will be deleted.
          - upsert:   will create or update if needed.

        The response http status is either:
         - 200: all items in request was processed successfully, 
         - 207: one or more item was processed with an error.

        Required permissions: SOA
      operationId: post-tenant-soa-amounts-batch
      x-flow-permissions: SOA
      requestBody:
        $ref: '#/components/requestBodies/SOAAmountBatchRequest'
      responses:
        '200':
          $ref: '#/components/responses/SOAAmountBatchResponse'
        '207':
          $ref: '#/components/responses/SOAAmountBatchResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: BATCH Create SOA amounts
      tags:
        - SOA
      x-stoplight:
        id: 8jz75d2fkukgw
  '/tenants/{tenantUid}/pricelists/{pricelistUid}':
    delete:
      description: |-
        Deletes a pricelist and all associated prices.

        Required permissions: PRICELIST
      operationId: delete-tenants-pricelists-details
      x-flow-permissions: PRICELIST
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a pricelist
      tags:
        - Prices
    get:
      description: Get pricelist details.
      operationId: get-tenants-pricelists-details
      responses:
        '200':
          $ref: '#/components/responses/PricelistResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get pricelist details
      tags:
        - Prices
    parameters:
      - $ref: '#/components/parameters/pricelistUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update pricelist details.

        Required permissions: PRICELIST
      operationId: put-tenants-pricelists-details
      x-flow-permissions: PRICELIST
      requestBody:
        $ref: '#/components/requestBodies/PricelistUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PricelistResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update pricelist details
      tags:
        - Prices
  '/tenants/{tenantUid}/soas/{soaUid}':
    delete:
      description: |-
        Deletes a SOA and all associated amounts.

        Required permissions: SOA
      operationId: delete-tenant-soa
      x-flow-permissions: SOA
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a SOA
      x-stoplight:
        id: 0ea6xxhs0z5v8
      tags:
        - SOA
    get:
      description: |-
        Get SOA details.

        Required permissions: SOA
      operationId: get-tenant-soa-details
      x-flow-permissions: SOA
      responses:
        '200':
          $ref: '#/components/responses/SOAResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get SOA details
      x-stoplight:
        id: 6c497kggef180
      tags:
        - SOA
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/soaUid'
    put:
      description: |-
        Update SO details.

        Required permissions: SOA
      operationId: put-tenant-soa-details
      x-flow-permissions: SOA
      requestBody:
        $ref: '#/components/requestBodies/SOAUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SOAResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update SOA details
      x-stoplight:
        id: 19du019kv6vi0
      tags:
        - SOA
  '/tenants/{tenantUid}/soas/{soaUid}/amounts':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a SOA.
        in: path
        name: soaUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      description: |-
        Create a SOA amount.

        Required permissions: SOA
      operationId: post-tenant-soa-amount-details
      x-flow-permissions: SOA
      responses:
        '201':
          $ref: '#/components/responses/SOAAmountResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a SOA amount
      x-stoplight:
        id: e4rf4ln479aie
      requestBody:
        $ref: '#/components/requestBodies/SOAAmountCreateRequest'
      tags:
        - SOA
    get:
      summary: List SOA Amounts associated with a SOA
      x-flow-permissions: SOA
      tags:
        - SOA
      responses:
        2XX:
          $ref: '#/components/responses/SOAAmountListResponse'
      operationId: list-tenant-soaUid-soa-amounts
      x-stoplight:
        id: xdalz0l3heagu
      description: |-
        List SOA Amounts associated with a SOA

        Required permissions: SOA
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/soas/{soaUid}/amounts/{soaAmountUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/soaUid'
      - $ref: '#/components/parameters/soaAmountUid'
    get:
      description: Get a SOA amount.
      operationId: get-tenant-soa-amount-details
      x-flow-permissions: SOA
      responses:
        '200':
          $ref: '#/components/responses/SOAAmountResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get a SOA amount
      tags:
        - SOA
      x-stoplight:
        id: xsxc6fasvmqiz
    put:
      summary: Update SOA amount details
      description: |-
        Update SOA amount details

        Required permissions: SOA
      x-flow-permissions: SOA
      tags:
        - SOA
      responses:
        '200':
          $ref: '#/components/responses/SOAAmountResponse'
      operationId: put-tenant-soa-amount-details
      x-stoplight:
        id: 9xf2b4mm2cmtq
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SOAAmountUpdateRequest'
    delete:
      summary: Delete a SOA amount
      description: |-
        Delete a SOA amount

        Required permissions: SOA
      x-flow-permissions: SOA
      tags:
        - SOA
      responses:
        '204':
          description: No Content
      operationId: delete-tenant-soa-amount
      x-stoplight:
        id: l4mb5uaip4vcx
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/pricelists/{pricelistUid}/prices':
    get:
      description: |-
        Lists all prices on a pricelist.

        Required permissions: PRICELIST
      operationId: get-tenants-pricelists-prices
      x-flow-permissions: PRICELIST
      parameters:
        - $ref: '#/components/parameters/priceProductExternalIdQuery'
        - $ref: '#/components/parameters/priceProductUidQuery'
        - $ref: '#/components/parameters/priceProductSkuQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PriceListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List prices
      tags:
        - Prices
    parameters:
      - $ref: '#/components/parameters/pricelistUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Creates a new price for a product on a pricelist.

        One product in a pricelist can have one price with no toDate. 
        This is regarded as a fallback price if no price is found with a fromDate >= now() and toDate <= now()

        No prices for one product can overlap in time.

        Required permissions: PRICELIST
      operationId: post-tenants-pricelists-prices
      x-flow-permissions: PRICELIST
      requestBody:
        $ref: '#/components/requestBodies/PriceCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PriceResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new price
      tags:
        - Prices
  '/tenants/{tenantUid}/customers/batch':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |
        Creates customers
        Items in:
          - create :  will be created.
            
          - update :  will be updated.
          - delete:   will be deleted.
          - upsert:   will create or update if needed.

        The response http status is either:
         - 200: all items in request was processed successfully, 
         - 207: one or more item was processed with an error.

        Required permissions: CUSTOMER
      operationId: post-tenants-customers-batch
      x-flow-permissions: CUSTOMER
      requestBody:
        $ref: '#/components/requestBodies/CustomerBatchRequest'
      responses:
        '200':
          $ref: '#/components/responses/CustomerBatchResponse'
        '207':
          $ref: '#/components/responses/PriceBatchResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: BATCH Create customers
      x-stoplight:
        id: d5tph3xne3bjx
      tags:
        - Customer
  '/tenants/{tenantUid}/pricelists/{pricelistUid}/prices/batch':
    parameters:
      - $ref: '#/components/parameters/pricelistUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |
        Creates prices on a pricelist. 
        One product in a pricelist can have one price with no toDate. 
        This is regarded as a fallback price if no price is found with a fromDate >= now() and toDate <= now()

        No prices for one product can overlap in time.

        Items in:
          - create :  will be created.
                      if fromDate is not set in request, current timestamp     
                      will be set on price record
            
          - update :  will be updated.
          - delete:   will be deleted.
          - upsert:   will create or update if needed.
                      if fromDate is not set in request, an update on 
                      current price will be executed.

        The response http status is either:
         - 200: all items in request was processed successfully, 
         - 207: one or more item was processed with an error.

        Required permissions: PRICELIST
      operationId: post-tenants-pricelists-prices-batch
      x-flow-permissions: PRICELIST
      requestBody:
        $ref: '#/components/requestBodies/PriceBatchRequest'
      responses:
        '200':
          $ref: '#/components/responses/PriceBatchResponse'
        '207':
          $ref: '#/components/responses/PriceBatchResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: BATCH Create prices on a pricelist.
      tags:
        - Prices
      x-stoplight:
        id: kd98fvbq17jcf
  '/tenants/{tenantUid}/pricelists/{pricelistUid}/prices/search':
    parameters:
      - description: Reference to a Pricelist.
        in: path
        name: pricelistUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      description: |-
        The search answers the question:
        Give all prices that have products with brand in brandUids AND productGroup in groupUids
         AND that have product SKU/name, brand name or productGroup name which contains the query words.
      operationId: post-pricelists-prices-search
      requestBody:
        $ref: '#/components/requestBodies/PriceSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/PriceListResponse'
        '207':
          $ref: '#/components/responses/PriceBatchResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for prices in a price list
      tags:
        - Prices
      x-stoplight:
        id: 4yy28uuds3sjd
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/pricelists/{pricelistUid}/prices/{priceUid}':
    delete:
      operationId: delete-tenants-pricelists-prices-details
      x-flow-permissions: PRICELIST
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a price
      description: |-
        Deletes a price on a pricelist.
        Required permissions: PRICELIST
      tags:
        - Prices
    get:
      description: Get details for a price.
      operationId: get-tenants-pricelists-prices-details
      responses:
        '200':
          $ref: '#/components/responses/PriceResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get price details
      tags:
        - Prices
    parameters:
      - $ref: '#/components/parameters/pricelistUid'
      - $ref: '#/components/parameters/priceUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for a price.

        Required permissions: PRICELIST
      operationId: put-tenants-pricelists-prices-details
      x-flow-permissions: PRICELIST
      requestBody:
        $ref: '#/components/requestBodies/PriceUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PriceResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update price details
      tags:
        - Prices
  '/tenants/{tenantUid}/product-groups':
    get:
      description: List all product groups.
      operationId: get-tenants-product-groups
      parameters:
        - $ref: '#/components/parameters/productGroupNameQuery'
        - $ref: '#/components/parameters/productGroupExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/productGroupScopesQuery'
        - $ref: '#/components/parameters/productGroupParentUid'
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List product groups
      tags:
        - ProductGroup
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Creates a new product group.

        If parentUid is set and no scope is set, the new product group inherits scope from parent.

        Required permissions: PRODUCT_GROUP
      operationId: post-tenants-product-groups
      x-flow-permissions: PRODUCT_GROUP
      requestBody:
        $ref: '#/components/requestBodies/ProductGroupCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new product group
      tags:
        - ProductGroup
  '/tenants/{tenantUid}/product-groups/{productGroupUid}':
    delete:
      description: |-
        Deletes a product group. The product group has to be empty.

        Required permissions: PRODUCT_GROUP
      operationId: delete-tenants-product-groups-details
      x-flow-permissions: PRODUCT_GROUP
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete product group
      tags:
        - ProductGroup
    get:
      description: Get details for a product group.
      operationId: get-tenants-product-groups-details
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get productgroup details
      tags:
        - ProductGroup
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productGroupUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |
        Update details for a product group. Partial updates are allowed.

        If scope is set and different from current scope, the scope is changed for product group and all children for this product group.

        On parent UID field:
        - Set to a valid product group UID to move under a new parent.  
        - Set to empty string to remove the parent and make the product group a root group.  
        - Omit to keep the current parent.

        Required permissions: PRODUCT_GROUP
      operationId: put-tenants-product-groups-details
      x-flow-permissions: PRODUCT_GROUP
      requestBody:
        $ref: '#/components/requestBodies/ProductGroupUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update product group
      tags:
        - ProductGroup
  '/tenants/{tenantUid}/products':
    get:
      description: Lists all products.
      operationId: get-tenants-products
      parameters:
        - $ref: '#/components/parameters/productNameQuery'
        - $ref: '#/components/parameters/productBrandUidQuery'
        - $ref: '#/components/parameters/productGroupUidQuery'
        - $ref: '#/components/parameters/productExternalIdQuery'
        - $ref: '#/components/parameters/productPropertyUidsQuery'
        - $ref: '#/components/parameters/productPropertyOptionUidsQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/excludeVariantsQuery'
        - $ref: '#/components/parameters/includeDiscontinuedProductsQuery'
        - $ref: '#/components/parameters/productVisibilityQuery'
        - $ref: '#/components/parameters/productAllowPurchaseQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List products
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-tenants-products
      x-flow-permissions: PRODUCT
      description: |-
        `CONFIGURABLE`products must have at least one required variant property UID.

        Required permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new product
      tags:
        - Product
  '/tenants/{tenantUid}/products/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Searches for products based on criteria set in the request body.

        If productGroupUid is set, productGroupScopes is omitted.
      operationId: post-tenants-products-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search products
      tags:
        - Product
      requestBody:
        $ref: '#/components/requestBodies/ProductSearchRequest'
  '/tenants/{tenantUid}/products/export':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Excel file download containing filtered product list
      tags:
        - Product
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          description: Successful response - Excel file containing filtered product list
          content:
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
      operationId: post-tenants-tenantUid-products-export
      x-stoplight:
        id: xbmagu7w08m65
      description: |-
        Excel file download containing filtered product list

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductSearchRequest'
  '/tenants/{tenantUid}/products/{productUid}/print':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
    post:
      description: Do product-specific prints
      operationId: post-tenants-product-print
      parameters: []
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Print operations for products
      tags:
        - Product
      requestBody:
        $ref: '#/components/requestBodies/ProductBarcodePrintRequest'
      responses:
        '204':
          description: No Content
  '/tenants/{tenantUid}/products/stock':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get product stock for one or several products. The result can be limited to only specific stores and warehouses.

        Usage:

          productUids OR productSkus is required. An error is returned if both fields are present in request.

          storeUids OR warehouseUids is required.  An error is returned if both fields are present in request.

          Returns stock records for all warehouses in request or all warehouses for all stores in request.
      operationId: post-tenants-products-stock
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      requestBody:
        $ref: '#/components/requestBodies/ProductSearchStockRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductSearchStockResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get stock list for a list of products and locations
      tags:
        - StockInfo
  '/tenants/{tenantUid}/products/{productUid}':
    delete:
      description: |-
        Deletes a product.

        Required permissions: PRODUCT
      operationId: delete-tenants-products-details
      x-flow-permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a product
      tags:
        - Product
    get:
      description: Get details for a product.
      operationId: get-tenants-products-details
      responses:
        '200':
          $ref: '#/components/responses/ProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get product details
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Partial updates are allowed.  
        On `CONFIGURABLE`products, the required variant property UID's can only be changed while no variant products have been added.

        Required permissions: PRODUCT
      operationId: put-tenants-products-details
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update product details
      tags:
        - Product
  '/tenants/{tenantUid}/products/{productUid}/variants':
    get:
      description: Get list of variants for a product
      operationId: get-tenant-product-variants
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductVariantListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get list of variants for a product
      x-internal: false
      tags:
        - ProductProperties
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Add a product as variant on a configurable product
      x-flow-permissions: PRODUCT
      operationId: post-tenant-product-variants
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      responses:
        '200':
          $ref: '#/components/responses/ProductVariantResponse'
      description: |-
        Add a product as variant on a configurable product

        The productUid in the path should be the configurable product.
        The productUid in the request body is the product that you want to add as a variant

        Required permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductVariantRequest'
      tags:
        - ProductProperties
  '/tenants/{tenantUid}/products/{productUid}/variants/{productVariantUid}':
    delete:
      description: |-
        Deletes a product variant.

        Required permissions: PRODUCT
      operationId: delete-tenant-product-variant-details
      x-flow-permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a product variant
      tags:
        - ProductProperties
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productVariantUid'
  '/tenants/{tenantUid}/products/{productUid}/properties':
    get:
      description: Get list of properties for a product
      operationId: get-tenant-product-properties
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductPropertyListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get list of properties for a product
      x-internal: false
      tags:
        - ProductProperties
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Set a property to a product
      operationId: post-tenant-product-properties
      description: |-
        Set a property to a product

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      responses:
        '200':
          $ref: '#/components/responses/ProductPropertyResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductPropertyRequest'
      tags:
        - ProductProperties
  '/tenants/{tenantUid}/products/{productUid}/properties/{productPropertyUid}':
    delete:
      operationId: delete-tenant-product-property-details
      description: |-
        Deletes a property from a product.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Remove a product property from a product
      tags:
        - ProductProperties
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productPropertyUid'
  '/tenants/{tenantUid}/products/{productUid}/text-properties/{propertyUid}':
    put:
      summary: Update a text property for a product
      operationId: put-tenant-product-text-property-details
      description: |-
        Update a text property for a product

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      responses:
        '200':
          $ref: '#/components/responses/ProductPropertyResponse'
      requestBody:
        $ref: '#/components/requestBodies/ProductTextPropertyUpdateRequest'
      tags:
        - ProductProperties
      x-stoplight:
        id: 863k2adlyc8f4
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/propertyUid'
  '/tenants/{tenantUid}/products/{productUid}/addons':
    get:
      description: List all addons for a product and productLinkType
      operationId: get-tenants-products-addons
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/productLinkTypeQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductAddonListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all addons for a product and productLinkType
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/products/{productUid}/links':
    get:
      description: List all links for a product.
      operationId: get-tenants-products-links
      parameters:
        - $ref: '#/components/parameters/productLinkTypeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductLinkListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all links for a product.
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create new product link

        Required permissions: PRODUCT
      operationId: post-tenants-products-links
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductLinkRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductLinkResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Create new product link
      tags:
        - Product
  '/tenants/{tenantUid}/products/{productUid}/links/parents':
    get:
      description: List all  parent links for a product.
      operationId: get-tenants-products-links-parents
      parameters:
        - $ref: '#/components/parameters/productLinkTypeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductLinkParentListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all  parent links for a product.
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/products/{productUid}/links/{productLinkUid}':
    delete:
      description: |-
        Delete a product link

        Required permissions: PRODUCT
      operationId: delete-tenants-products-links-details
      x-flow-permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Delete a product link
      tags:
        - Product
    get:
      description: Get Product link details
      operationId: get-tenants-products-links-details
      responses:
        '200':
          $ref: '#/components/responses/ProductLinkResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Product link details
      tags:
        - Product
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productLinkUid'
  '/tenants/{tenantUid}/properties':
    get:
      description: |-
        List all properties.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      operationId: get-tenants-properties
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PropertyListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List properties
      tags:
        - Properties
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-tenants-properties
      description: |-
        Create a new property.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      responses:
        '200':
          $ref: '#/components/responses/PropertyResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new property
      tags:
        - Properties
      requestBody:
        $ref: '#/components/requestBodies/PropertyCreateRequest'
  '/tenants/{tenantUid}/properties/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: 'Searches for properties based on criteria set in the request body. '
      operationId: post-tenants-properties-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PropertyListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for properties
      tags:
        - Properties
      requestBody:
        $ref: '#/components/requestBodies/PropertySearchRequest'
  '/tenants/{tenantUid}/properties/{propertyUid}':
    delete:
      operationId: delete-tenants-properties-details
      x-flow-permissions: PRODUCT
      description: |-
        Deletes a property.

        Required permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a property
      tags:
        - Properties
    get:
      description: Gets the details for this property.
      operationId: get-tenants-properties-details
      responses:
        '200':
          $ref: '#/components/responses/PropertyResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get property details
      tags:
        - Properties
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/propertyUid'
    put:
      operationId: put-tenants-properties-details
      description: |-
        Updates the details for this property.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/PropertyUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PropertyResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update property details
      tags:
        - Properties
  '/tenants/{tenantUid}/properties/{propertyUid}/options':
    get:
      description: List all options available on this property.
      operationId: get-tenants-properties-options
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - schema:
            type: string
          in: query
          name: propertyOptionName
          description: Partial filter on propertyOptionName. If you filter for "red" it will return all options containing "red"
      responses:
        '200':
          $ref: '#/components/responses/PropertyOptionListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List property options
      tags:
        - Properties
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/propertyUid'
    post:
      operationId: post-tenants-properties-options
      description: |-
        Create a new option for this property.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/PropertyOptionCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PropertyOptionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new property option
      tags:
        - Properties
  '/tenants/{tenantUid}/properties/{propertyUid}/options/{propertyOptionUid}':
    delete:
      operationId: delete-tenants-properties-options-details
      description: |-
        Delete a property option.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a property option
      tags:
        - Properties
    get:
      description: Get details for the property option.
      operationId: get-tenants-properties-options-details
      responses:
        '200':
          $ref: '#/components/responses/PropertyOptionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get property option details
      tags:
        - Properties
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/propertyUid'
      - $ref: '#/components/parameters/propertyOptionUid'
    put:
      operationId: put-tenants-properties-options-details
      description: |-
        Update details of the property option.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/PropertyOptionUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PropertyOptionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update property option details
      tags:
        - Properties
  '/tenants/{tenantUid}/reasons':
    get:
      description: List all reasons.
      operationId: get-tenants-reasons
      parameters:
        - $ref: '#/components/parameters/reasonTypeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ReasonListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List reasons
      tags:
        - Reasons
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-tenants-reasons
      description: |-
        Create new reason

        Required permissions: REASON
      x-flow-permissions: REASON
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/ReasonCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReasonResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new reason
      tags:
        - Reasons
  '/tenants/{tenantUid}/reasons/{reasonUid}':
    delete:
      operationId: delete-tenants-reasons-details
      description: |-
        Delete a reason.

        Required permissions: REASON
      x-flow-permissions: REASON
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a reason
      tags:
        - Reasons
    get:
      description: Get details for the reason.
      operationId: get-tenants-reasons-details
      responses:
        '200':
          $ref: '#/components/responses/ReasonResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get reason details
      tags:
        - Reasons
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/reasonUid'
    put:
      operationId: put-tenants-reasons-details
      description: |-
        Update details of the reason.

        Required permissions: REASON
      x-flow-permissions: REASON
      requestBody:
        $ref: '#/components/requestBodies/ReasonUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReasonResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update reason details
      tags:
        - Reasons
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports':
    get:
      summary: List all reports
      operationId: get-tenant-organization-reports-list
      responses:
        '200':
          $ref: '#/components/responses/ReportListResponse'
      x-stoplight:
        id: j1pbzkgku8urv
      description: List all reports for an organization
      tags:
        - Reports
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/reportType'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/{reportUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/reportUid'
    post:
      summary: Abort report generation
      operationId: post-tenants-organizations-reports
      description: |-
        Abort report generation

        Required permissions: REPORT_ADMIN
      x-flow-permissions: REPORT_ADMIN
      responses:
        '200':
          $ref: '#/components/responses/ReportResponse'
      x-stoplight:
        id: 1e4bhg595grkr
      requestBody:
        $ref: '#/components/requestBodies/ReportAbortRequest'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      tags:
        - Reports
    get:
      summary: Get report details
      operationId: get-tenant-organization-reports-details
      responses:
        '200':
          $ref: '#/components/responses/ReportResponse'
      description: Get report details
      tags:
        - Reports
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
    delete:
      summary: Delete a generated report
      operationId: delete-tenants-organizations-reports
      description: |-
        Deletes a generated report

        Required permissions: REPORT_ADMIN
      x-flow-permissions: REPORT_ADMIN
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-stoplight:
        id: 3um7odgt6oyiw
      tags:
        - Reports
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/{reportUid}/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/reportUid'
    get:
      summary: Download report content
      operationId: get-tenant-organization-reports-download
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '404':
          description: Not Found
        '409':
          description: Conflict
      description: Download report content
      x-stoplight:
        id: 5qd2yxms5h50e
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      tags:
        - Reports
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/warehouse-stock-details':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    post:
      description: |
        Start report generation of WarehouseStockDetails

        Required permissions: REPORT_ADMIN
      operationId: post-tenant-organization-warehousestockdetails-run
      x-flow-permissions: REPORT_ADMIN
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/WarehouseStockDetailsReportCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/ReportResponse'
      security:
        - authToken: []
        - integrationToken: []
      summary: Start WarehouseStockDetails report
      x-stoplight:
        id: 68oitqaw23u4d
      tags:
        - Reports
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/saf-t':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    post:
      description: |-
        Start SAF-T report generation for a set period.
        It is also possible to only run it for a specific set of stores.

        Required permissions: REPORT_ADMIN
      operationId: post-tenant-organization-saft-run
      x-flow-permissions: REPORT_ADMIN
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/SAFTReportCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/ReportResponse'
      security:
        - authToken: []
        - integrationToken: []
      summary: Start SAF-T report generation
      tags:
        - Reports
      x-stoplight:
        id: ulr47at6t9d8p
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/open-items':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    post:
      description: |-
        Make an *ad hoc* Open Items report (this is not stored).  
        Optionally filter on stores. 
        The report is in XLSX spreadsheet format.

        Required permissions: REPORT_ADMIN
      operationId: post-report-open-items-run
      x-flow-permissions: REPORT_ADMIN
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/OpenItemsReportRequest'
      responses:
        '201':
          $ref: '#/components/responses/OpenItemsReportResponse'
      security:
        - authToken: []
        - integrationToken: []
      summary: Get Open Items report
      tags:
        - Reports
      x-stoplight:
        id: h7lcoxo96kknq
  '/tenants/{tenantUid}/reports/accounting':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get accounting report for a storeUid and a period.
        Response is a json structured data of accounting

        Required permissions: REPORTING
      operationId: post-tenants-reports-accounting
      x-flow-permissions: REPORTING
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/AccountingRequest'
      responses:
        '200':
          $ref: '#/components/responses/AccountingReportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: 'Accounting report for stores, json format'
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/accounting/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get an accounting report for a store UID and a time period.
        Depending on the header you set, the response is either a json containing a base 64 encoded pdf or a direct download. The file is base64 encoded. You can set choose among the supported file types, default is PDF.

        Required permissions: REPORTING
      operationId: post-tenants-reports-accounting-download
      x-flow-permissions: REPORTING
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/AccountingFileRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Accounting report file for stores
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/products':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get products turnover report for a time period,  
        optionally filtered on a list of product group and UIDs.
        The report generates sums of sold products and total values.

        Required permissions: REPORTING
      operationId: post-tenants-reports-products
      x-flow-permissions: REPORTING
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/ProductReportRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductReportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for products
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/turnover/stores':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get turnover data grouped by store.

        If `tenant user UID` is specified, 
        the turnover data will only contain the numbers for that 
        specific user.

        Required permissions: 'REPORTING, SALES_ORDER, RETURN_ORDER'
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-reports-turnover-stores
      requestBody:
        $ref: '#/components/requestBodies/TurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/StoreTurnoverResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for stores
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/receipts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Generate a report of all receipts in a given period.

        Required permissions: REPORTING
      x-flow-permissions: REPORTING
      operationId: post-tenants-reports-receipts
      requestBody:
        $ref: '#/components/requestBodies/ReceiptsReportRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReceiptReportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Receipts report for stores
      tags:
        - Reports
      x-stoplight:
        id: uxsk9l6eda6f1
  '/tenants/{tenantUid}/reports/turnover/stores/{storeUid}/product-groups':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Get turnover data for a store grouped by product-group.

        If `tenant user UID` is specified, 
        the turnover data will only contain the numbers for that 
        specific user.

        Required permissions: REPORTING,SALES_ORDER,RETURN_ORDER
      operationId: post-tenants-reports-turnover-stores-productGroups
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/TurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/TurnoverResponseProductGroup'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for root product groups
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/turnover/stores/{storeUid}/users':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |
        Get turnover data for all sellers in a store.

        Ordered by turnover descending.

        Required permissions: REPORTING,SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-reports-turnover-stores-tenantUsers
      requestBody:
        $ref: '#/components/requestBodies/TenantUserTurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserReportTurnoverResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for sellers on a store
      tags:
        - Reports
      x-stoplight:
        id: q5eq30ekbqms4
  '/tenants/{tenantUid}/reports/turnover/stores/{storeUid}/product-groups/{productGroupUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/productGroupUid'
    post:
      description: |-
        Get turnover data for a store and product group.

        If `tenant user UID` is specified, 
        the turnover data will only contain the numbers for that 
        specific user.

        Required permissions: REPORTING,SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-reports-turnover-stores-productGroups-productGroup
      requestBody:
        $ref: '#/components/requestBodies/TurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/TurnoverResponseProductGroup'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for one product group
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/turnover/stores/{storeUid}/product-groups/{productGroupUid}/products':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/productGroupUid'
    post:
      description: |-
        Get turnover data for a product group grouped by product

        If `tenant user UID` is specified, 
        the turnover data will only contain the numbers for that 
        specific user.

        Required permissions: REPORTING,SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-reports-turnover-stores-productGroups-products
      requestBody:
        $ref: '#/components/requestBodies/TurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/TurnoverResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for products
      tags:
        - Reports
  '/tenants/{tenantUid}/reports/turnover/stores/{storeUid}/product-groups/{productGroupUid}/products/{productUid}/orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/productGroupUid'
      - $ref: '#/components/parameters/productUid'
    post:
      description: |-
        Get turnover data for a product grouped by orders.


        If `tenant user UID` is specified, 
        the turnover data will only contain the numbers for that 
        specific user.

        Required permissions: REPORTING,SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'REPORTING,SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-reports-turnover-stores-productGroups-products-orders
      requestBody:
        $ref: '#/components/requestBodies/TurnoverRequest'
      responses:
        '200':
          $ref: '#/components/responses/TurnoverResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Turnover report for orders
      tags:
        - Reports
  '/tenants/{tenantUid}/product-groups/{productGroupUid}/links':
    get:
      description: List all links for a product group.
      operationId: get-product-group-links
      parameters:
        - $ref: '#/components/parameters/productGroupLinkTypeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupLinkListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all links for a product group.
      tags:
        - ProductGroup
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/productGroupUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create new link to a product group

        Required permissions: PRODUCT_GROUP
      operationId: post-product-group-links
      x-flow-permissions: PRODUCT_GROUP
      requestBody:
        $ref: '#/components/requestBodies/ProductGroupLinkRequest'
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupLinkResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Create new link to a product group
      tags:
        - ProductGroup
  '/tenants/{tenantUid}/product-groups/{productGroupUid}/links/{productGroupLinkUid}':
    delete:
      description: |-
        Delete a product group link

        Required permissions: PRODUCT_GROUP
      operationId: delete-product-group-link
      x-flow-permissions: PRODUCT_GROUP
      responses:
        '204':
          description: No Content
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Delete a product group link
      x-stoplight:
        id: pw1x60ns06dqx
      tags:
        - ProductGroup
    get:
      description: Get Product group link details
      operationId: get-product-group-link-details
      responses:
        '200':
          $ref: '#/components/responses/ProductGroupLinkResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Product Group link details
      x-internal: false
      x-stoplight:
        id: lo7z94xggwcma
      tags:
        - ProductGroup
    parameters:
      - $ref: '#/components/parameters/productGroupUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productGroupLinkUid'
  '/tenants/{tenantUid}/extensions':
    get:
      description: |-
        List extensions for a tenant

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: get-tenants-extensions
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/TenantExtensionListResponse'
      security:
        - authToken: []
        - accessToken: []
      summary: List extensions for a tenant
      tags:
        - Extensions
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new extension for a tenant

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: post-tenants-extensions
      requestBody:
        $ref: '#/components/requestBodies/TenantExtensionCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/TenantExtensionResponse'
      security:
        - authToken: []
      summary: Add a new extension to a tenant
      tags:
        - Extensions
      x-internal: true
  '/tenants/{tenantUid}/extensions/{tenantExtensionUid}':
    delete:
      description: |-
        Deletes a tenant extension.

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: delete-tenants-extention
      responses:
        '204':
          description: No Content
      security:
        - authToken: []
      summary: Delete a tenant extension
      tags:
        - Extensions
    get:
      description: Get details for a tenant extension.
      operationId: get-tenants-extension-details
      responses:
        '200':
          $ref: '#/components/responses/TenantExtensionResponse'
      security:
        - authToken: []
        - accessToken: []
      summary: Get tenant extension details
      tags:
        - Extensions
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantExtensionUid'
    put:
      description: |-
        Update details for a tenant extension.

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: put-tenants-extensions-details
      requestBody:
        $ref: '#/components/requestBodies/TenantExtensionUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantExtensionResponse'
      security:
        - authToken: []
      summary: Update tenant extension details
      tags:
        - Extensions
  '/tenants/{tenantUid}/extensions/{tenantExtensionUid}/stores':
    get:
      description: |-
        List store extensions for a tenant extension

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: get-tenant-extension-stores
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/tenantExtensionActiveQuery'
        - $ref: '#/components/parameters/tenantExtensionStoreNameQuery'
      responses:
        '200':
          $ref: '#/components/responses/TenantExtensionStoreListResponse'
      security:
        - authToken: []
        - accessToken: []
      summary: List store extensions for a tenant extension
      tags:
        - Extensions
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantExtensionUid'
  '/tenants/{tenantUid}/organizations':
    get:
      description: |-
        List all organizations.

        Required permissions: ORGANIZATION
      x-flow-permissions: ORGANIZATION
      operationId: get-tenants-organizations
      parameters:
        - $ref: '#/components/parameters/organizationExternalIdQuery'
        - $ref: '#/components/parameters/organizationNameQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/OrganizationListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List organizations
      tags:
        - Organization
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Creates a new organization.

        Required permissions: ORGANIZATION
      operationId: post-tenants-organizations
      x-flow-permissions: ORGANIZATION
      requestBody:
        $ref: '#/components/requestBodies/OrganizationCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrganizationResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new organization
      tags:
        - Organization
  '/tenants/{tenantUid}/organizations/{organizationUid}':
    delete:
      description: |-
        Deletes a organizations.

        Required permissions: ORGANIZATION
      x-flow-permissions: ORGANIZATION
      operationId: delete-tenants-organizations-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an organization
      tags:
        - Organization
    get:
      description: |-
        Get details for an organization.

        Required permissions: ORGANIZATION
      x-flow-permissions: ORGANIZATION
      operationId: get-tenants-organization-details
      responses:
        '200':
          $ref: '#/components/responses/OrganizationResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get organization details
      tags:
        - Organization
    parameters:
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for an organization. Partial updates are allowed.

        Required permissions: ORGANIZATION
      x-flow-permissions: ORGANIZATION
      operationId: put-tenants-organizations-details
      requestBody:
        $ref: '#/components/requestBodies/OrganizationUpdateRequest'
      responses:
        '201':
          $ref: '#/components/responses/OrganizationResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update organization details
      tags:
        - Organization
  '/tenants/{tenantUid}/stores':
    get:
      description: List all stores.
      operationId: get-tenants-stores
      parameters:
        - $ref: '#/components/parameters/storeExternalIdQuery'
        - $ref: '#/components/parameters/storeNameQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/storeOrganizationUidQuery'
      responses:
        '200':
          $ref: '#/components/responses/StoreListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List stores
      tags:
        - Store
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Creates a new store.

        Required permissions: STORE
      x-flow-permissions: STORE
      operationId: post-tenants-stores
      requestBody:
        $ref: '#/components/requestBodies/StoreCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StoreResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new store
      tags:
        - Store
  '/tenants/{tenantUid}/stores/{storeUid}':
    delete:
      operationId: delete-tenants-stores-details
      description: |-
        Deletes a store.

        Required permissions: STORE
      x-flow-permissions: STORE
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a store
      tags:
        - Store
    get:
      description: Get details for a store.
      operationId: get-tenants-stores-details
      responses:
        '200':
          $ref: '#/components/responses/StoreResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get store details
      tags:
        - Store
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      operationId: put-tenants-stores-details
      description: |-
        Update details for a store. Partial updates are allowed.

        Required permissions: STORE
      x-flow-permissions: STORE
      requestBody:
        $ref: '#/components/requestBodies/StoreUpdateRequest'
      responses:
        '201':
          $ref: '#/components/responses/StoreResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update store details
      tags:
        - Store
  '/tenants/{tenantUid}/stores/{storeUid}/printers':
    get:
      description: List printers for store
      operationId: list-store-printers
      responses:
        '200':
          $ref: '#/components/responses/StorePrinterListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List printers for store
      tags:
        - StorePrinter
      x-stoplight:
        id: 6sbhccl1bxd33
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-store-printer-details
      description: |-
        Assign an event type to a printer and store

        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      requestBody:
        $ref: '#/components/requestBodies/StorePrinterCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/StorePrinterResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Assign printer to store and add an event type
      tags:
        - StorePrinter
      x-stoplight:
        id: 0ci6ln0g34i9h
  '/tenants/{tenantUid}/stores/{storeUid}/printers/{storePrinterUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storePrinterUid'
    get:
      summary: Get Store Printer Details
      description: Get Store Printer Details
      tags:
        - StorePrinter
      responses:
        '200':
          $ref: '#/components/responses/StorePrinterResponse'
      operationId: get-store-pinter-details
      x-stoplight:
        id: szold1oxzdpj9
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update Store Printer Details
      tags:
        - StorePrinter
      responses:
        '200':
          $ref: '#/components/responses/StorePrinterResponse'
      operationId: update-store-printer-details
      description: |-
        Update Store Printer Details

        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      x-stoplight:
        id: v6mn1bo4v7zba
      requestBody:
        $ref: '#/components/requestBodies/StorePrinterUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete Store Printer Details
      tags:
        - StorePrinter
      responses:
        '204':
          description: No Content
      operationId: delete-store-printer-details
      description: |-
        Delete Store Printer Details
        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      x-stoplight:
        id: y5aozmgxwi528
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/stock':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Get all stock records for a store after a modification timestamp.
      operationId: post-tenants-stores-stock
      responses:
        '200':
          $ref: '#/components/responses/ProductSearchStockResponse'
      x-stoplight:
        id: 5a79hiomaz97z
      description: |-
        Get stock records for a store.

        If no warehouseUids in request, the response contains stock records for all warehouses the storeUid in url has VIEW access to.

        Else, the storeUid in url MUST have VIEW access all warehosueUids in request.

        Returns stock records for all warehouses a store has VIEW asscess to.
      x-flow-permissions: STOCK
      requestBody:
        $ref: '#/components/requestBodies/StoreSearchStockRequest'
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - StockInfo
  '/tenants/{tenantUid}/warehouses/stock':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Get all stock records for a list of warehouses after a modification timestamp.
      operationId: post-tenants-warehouses-stock
      responses:
        '200':
          $ref: '#/components/responses/WarehouseProductDetailsResponse'
      description: |-
        Get stock records for a list of warehouses.

        Required permissions: STOCK
      x-flow-permissions: STOCK
      requestBody:
        $ref: '#/components/requestBodies/WarehouseSearchStockRequest'
      parameters: []
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - StockInfo
      x-stoplight:
        id: 1l28b10suhovx
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/flowboxes':
    get:
      description: |-
        List all flowboxes registered to a store.

        Required permissions: FLOWBOX
      operationId: get-tenants-stores-flowboxes
      x-flow-permissions: FLOWBOX
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all attached flowboxes
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Register a Flowbox with a store.

        Required permissions: FLOWBOX
      x-flow-permissions: FLOWBOX
      operationId: post-tenants-stores-flowboxes
      requestBody:
        $ref: '#/components/requestBodies/FlowboxAttachRequest'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxResponse'
        '404':
          description: Not found
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Attach a new Flowbox to the store
      tags:
        - Flowbox
  '/tenants/{tenantUid}/stores/{storeUid}/peripherals':
    get:
      operationId: get-tenants-stores-peripherals
      description: |-
        List all flowbox peripherals for a store.

        Required permissions: FLOWBOX
      x-flow-permissions: FLOWBOX
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/flowboxPeripheralTypeQuery'
        - $ref: '#/components/parameters/flowboxUidQuery'
      responses:
        '200':
          $ref: '#/components/responses/FlowboxPeripheralListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all flowbox peripherals for a store
      tags:
        - Flowbox
      x-internal: true
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
  '/tenants/{tenantUid}/stores/{storeUid}/giftcards/{giftcardNumber}':
    get:
      description: Get details for a giftcard
      operationId: get-tenants-stores-giftcards-details
      parameters:
        - $ref: '#/components/parameters/giftcardExtensionCode'
        - $ref: '#/components/parameters/giftcardCvcNumberQuery'
      responses:
        '200':
          $ref: '#/components/responses/GiftcardDetailsResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get Giftcard details
      tags:
        - Giftcard
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/giftcardNumber'
    put:
      summary: Update giftcard details
      tags:
        - Giftcard
      responses:
        '200':
          $ref: '#/components/responses/GiftcardDetailsResponse'
      operationId: put-giftcards-giftcardNumber
      x-stoplight:
        id: 4o7w7mecck5sm
      requestBody:
        $ref: '#/components/requestBodies/GiftcardUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Change expiry date or active status.
  '/tenants/{tenantUid}/stores/{storeUid}/orders':
    get:
      description: |-
        List all orders.

        The query parameter `orderStatus` can not be used in combination with `orderOrderState`, `orderSettleState` or `orderDeliveryState`.
      operationId: get-tenants-stores-orders
      parameters:
        - $ref: '#/components/parameters/orderStatusesQuery'
        - $ref: '#/components/parameters/orderTypesQuery'
        - $ref: '#/components/parameters/orderExternalOrderNumberQuery'
        - $ref: '#/components/parameters/orderExternalVoucherNumberQuery'
        - $ref: '#/components/parameters/orderCustomerUidQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/orderOrderStatesQuery'
        - $ref: '#/components/parameters/orderSettleStatesQuery'
        - $ref: '#/components/parameters/orderDeliveryStatesQuery'
        - $ref: '#/components/parameters/orderHandlingUidQuery'
        - $ref: '#/components/parameters/orderHandlingStatesQuery'
        - $ref: '#/components/parameters/orderSettledAtFromQuery'
        - $ref: '#/components/parameters/orderSettledAtToQuery'
        - $ref: '#/components/parameters/orderCreatedAtFromQuery'
        - $ref: '#/components/parameters/orderCreatedAtToQuery'
        - $ref: '#/components/parameters/orderTillUidQuery'
        - $ref: '#/components/parameters/orderTenantUserUidsQuery'
      responses:
        '200':
          $ref: '#/components/responses/OrderListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List orders
      tags:
        - Order
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders
      requestBody:
        $ref: '#/components/requestBodies/OrderCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new order
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/import':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Import new order from extern source. Complete order with lines and possibly settlements.
        sellerDisplayName can be set if an integrationToken is used. If no integrationToken and sellerDisplayName is set, an error is returned.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders-import
      requestBody:
        $ref: '#/components/requestBodies/OrderCreateImportRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - integrationToken: []
        - accessToken: []
      summary: Import new order from external source
      tags:
        - Order
      x-internal: false
  '/tenants/{tenantUid}/stores/{storeUid}/orders/search':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: 'The field `orderStatuses` can not be used in combination with `orderStates`, `settleStates` or `deliveryStates`.'
      operationId: post-tenants-stores-orders-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/OrderSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for order
      tags:
        - Order
  '/tenants/{tenantUid}/orders/reservations':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Update sales order reservations
      tags:
        - Order
      responses:
        '204':
          description: No Content
      operationId: post-tenants-orders-reservations
      description: |
        Set reservationType on order items to be reserved on a warehouse or a purchaseorder.
        Use PURCHASE_ORDER_CONFIRMED to mark order items as '`Purchase order created in external system`'

        Required permissions: SALES_ORDER,RETURN_ORDER,PURCHASE_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER,PURCHASE_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/OrderItemsReservationUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: klolatg6hz87n
  '/tenants/{tenantUid}/receipts/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Optionally narrow down the search to order in given stores and organizatons.

        The field `orderStatuses` can not be used in combination with the fields `orderStates`, `settleStates` or `deliveryStates`.
      operationId: post-tenants-order-receipts-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ReceiptListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for order receipts in all stores on tenant
      requestBody:
        $ref: '#/components/requestBodies/TenantOrderReceiptSearchRequest'
      x-stoplight:
        id: thsmpw9h79wlk
      tags:
        - Receipt
  '/tenants/{tenantUid}/orders/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Optionally narrow down the search to order in given stores and organizatons.

        The field `orderStatuses` can not be used in combination with the fields `orderStates`, `settleStates` or `deliveryStates`.
      operationId: post-tenants-orders-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/OrderListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for orders in all stores on tenant
      tags:
        - Order
      requestBody:
        $ref: '#/components/requestBodies/TenantOrderSearchRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}':
    delete:
      description: |-
        Delete an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: delete-tenants-stores-orders-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an order
      tags:
        - Order
    get:
      description: |-
        Get order details. This will return a complete order object.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-tenants-stores-orders-details
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get order details
      tags:
        - Order
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update order details.

        Order details can only be updated when orderState = OPEN and settleState != COMPLETE

        Exception:

        externalOrderNumber and externalVoucherNumber can be changed when orderState = COMPLETE

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: put-tenants-stores-orders-details
      requestBody:
        $ref: '#/components/requestBodies/OrderUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update order details
      tags:
        - Order
    post:
      summary: Order Operations
      description: |-
        Order Operations

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders-details
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      x-stoplight:
        id: uy2rucrhwhvgx
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/OrderOperationRequest'
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/deliveries':
    get:
      description: List all deliveries for a specific order
      operationId: get-tenants-stores-orders-deliveries
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/OrderDeliveryListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List deliveries for an order
      tags:
        - OrderDelivery
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Create a new delivery for an order

        Required permissions: DELIVERY
      x-flow-permissions: DELIVERY
      operationId: post-tenants-stores-orders-deliveries
      responses:
        '201':
          $ref: '#/components/responses/OrderDeliveryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new delivery for an order
      tags:
        - OrderDelivery
      requestBody:
        $ref: '#/components/requestBodies/OrderDeliveryCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/delivery-sources':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Fetch delivery sources for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders-delivery-sources
      responses:
        '200':
          $ref: '#/components/responses/DeliverySourcingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Fetch delivery sources for an order
      tags:
        - OrderDelivery
      requestBody:
        $ref: '#/components/requestBodies/DeliverySourcingRequest'
      x-stoplight:
        id: ixxx7kogqvm0o
  '/tenants/{tenantUid}/deliveries/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Search for order deliveries.

        fromDateTime and toDateTime can be set to null.
        If both fields have value null, only order deliveries with no deliveryDate is fetched.
      operationId: post-tenant-deliveries-search
      responses:
        '200':
          $ref: '#/components/responses/DeliverySearchListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for deliveries
      tags:
        - OrderDelivery
      requestBody:
        $ref: '#/components/requestBodies/DeliverySearchRequest'
      x-stoplight:
        id: 41qe7x2cjvcu9
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/deliveries/{deliveryUid}/profrakt':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/deliveryUid'
    post:
      description: |-
        Create Profrakt delivery for an order

        Required permissions: DELIVERY
      x-flow-permissions: DELIVERY
      operationId: post-tenants-stores-orders-deliveries-profrakt
      responses:
        '201':
          $ref: '#/components/responses/OrderDeliveryResponse'
          description: Profrakt delivery created for order
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create Profrakt delivery for an order
      tags:
        - OrderDelivery
        - Profrakt
      requestBody:
        $ref: '#/components/requestBodies/OrderProfraktDeliveryRequest'
      x-stoplight:
        id: yv6bqh2spzudb
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/deliveries/{deliveryUid}/profrakt/print-label':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/deliveryUid'
    post:
      description: Print shipping label for Profrakt order delivery
      operationId: print-tenants-stores-orders-deliveries-profrakt
      responses:
        '202':
          description: Accepted
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Print shipping label for Profrakt order delivery
      tags:
        - OrderDelivery
        - Print
        - Profrakt
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/deliveries/{deliveryUid}':
    get:
      description: 'Get information, like signature, about a specific delivery'
      operationId: get-tenants-stores-orders-deliveries-details
      responses:
        '200':
          $ref: '#/components/responses/OrderDeliveryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get order delivery information
      tags:
        - OrderDelivery
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/deliveryUid'
    put:
      description: |-
        Update a delivery with signature

        Required permissions: DELIVERY
      x-flow-permissions: DELIVERY
      operationId: put-tenants-stores-orders-deliveries-details
      requestBody:
        $ref: '#/components/requestBodies/OrderDeliveryUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderDeliveryResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update delivery
      tags:
        - OrderDelivery
    delete:
      summary: Delete order delivery
      description: |-
        Delete an order delivery. Note that this can only be done while the delivery state is "not delivered".

        Required permissions: DELIVERY
      x-flow-permissions: DELIVERY
      operationId: delete-orders-deliveries
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: gf3k4217lz3b6
      tags:
        - OrderDelivery
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/handlings':
    get:
      description: List all handlings for a specific order
      operationId: get-tenants-stores-order-handlings
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/OrderHandlingListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List handlings for an order
      tags:
        - OrderHandling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Add a handling on an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post--tenants-stores-order-handlings
      requestBody:
        $ref: '#/components/requestBodies/OrderHandlingCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/OrderHandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add a handling on an order
      tags:
        - OrderHandling
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/handlings/{orderHandlingUid}':
    delete:
      description: |-
        Delete handling for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: delete-tenants-stores-orders-handlings-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete handling for an order
      tags:
        - OrderHandling
    get:
      description: Get handling details for an order
      operationId: get-tenants-stores-orders-handlings-details
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/OrderHandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get handling details for an order
      tags:
        - OrderHandling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderHandlingUid'
    put:
      description: |-
        Update handling details for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: put-tenants-stores-orders-handlings-details
      requestBody:
        $ref: '#/components/requestBodies/OrderHandlingUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderHandlingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update handling details for an order
      tags:
        - OrderHandling
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Creates a new item on an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders-items
      requestBody:
        $ref: '#/components/requestBodies/OrderItemCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new order item
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/payment-methods':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    get:
      description: |-
        Get available payment methods for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-order-payment-methods
      responses:
        '200':
          $ref: '#/components/responses/OrderPaymentMethodListResponse'
      security:
        - accessToken: []
      summary: Get available payment methods for an order
      tags:
        - Order
      x-stoplight:
        id: a4urqbspgjihy
      deprecated: true
    post:
      summary: List available payment methods for order
      tags:
        - Order
      responses:
        '200':
          $ref: '#/components/responses/AvailableOrderPaymentMethodListResponse'
      operationId: post-stores-orders-payment-methods
      x-stoplight:
        id: pjpgeinf23jer
      description: |-
        List available payment methods for order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/OrderPaymentMethodsAvailable'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/consents':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Ask customer for a consent on an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-consent-on-order
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
      summary: Ask customer for a consent on an order
      tags:
        - Order
      requestBody:
        $ref: '#/components/requestBodies/OrderConsentRequest'
    get:
      description: |-
        Get status for a customer consent on an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-customer-consent-status-on-order
      responses:
        '200':
          $ref: '#/components/responses/OrderConsentListResponse'
      security:
        - accessToken: []
      summary: Get status for a customer consent on an order
      tags:
        - Order
      parameters:
        - $ref: '#/components/parameters/orderConsentType'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}':
    delete:
      description: |-
        Delete an item on an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: delete-tenants-stores-orders-items-details
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete order item
      tags:
        - Order
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderItemUid'
    put:
      description: |-
        Update details for an item on an order. Partial updates are allowed.
        Order item details can only be updated when order.orderState = OPEN and order.settleState != COMPLETE

        Exception:

        externalId can be changed when orderState = COMPLETE

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: put-tenants-stores-orders-items-details
      requestBody:
        $ref: '#/components/requestBodies/OrderItemUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update order item details
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/addons':
    get:
      description: |-
        List addons for order item

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-tenants-stores-orders-item-addons
      responses:
        '200':
          $ref: '#/components/responses/OrderItemAddonListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List addons for order item
      tags:
        - Order
      x-stoplight:
        id: g8txf51we6k4w
      parameters:
        - $ref: '#/components/parameters/productLinkTypeQuery'
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderItemUid'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/deliveries':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderItemUid'
    post:
      description: |-
        Deliver on an orderitem.

        Required permissions: DELIVERY
      x-flow-permissions: DELIVERY
      operationId: post-tenants-stores-orders-items-details-deliveries
      requestBody:
        $ref: '#/components/requestBodies/OrderItemDeliverRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Deliver on an order item
      tags:
        - OrderDelivery
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/handlingactions':
    get:
      description: |-
        List handling actions for an order item id

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-tenants-stores-orders-orderItem-handlingactions
      responses:
        '200':
          $ref: '#/components/responses/OrderItemActionListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List handling actions for an order item id
      tags:
        - OrderHandling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderItemUid'
    post:
      description: |-
        Add handling action to order item

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-stores-orders-orderItem-handlingactions
      requestBody:
        $ref: '#/components/requestBodies/OrderItemActionCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderItemActionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add handling action to order item
      tags:
        - OrderHandling
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/handlingactions/{orderHandlingActionUid}':
    delete:
      description: |-
        Delete a handling action for an order item.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: delete-tenants-stores-orders-items-actions-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a handling action for an order item.
      tags:
        - OrderHandling
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderItemUid'
      - $ref: '#/components/parameters/orderHandlingActionUid'
    put:
      description: |-
        Update order item  handling action

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: put-tenants-stores-orders-items-actions-details
      requestBody:
        $ref: '#/components/requestBodies/OrderItemActionUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderItemActionResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update order item  handling action
      tags:
        - OrderHandling
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/print':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Print order
        Content and form is decided by type.
        orderItemUids is omitted when type is RECEIPT

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-orders-print
      requestBody:
        $ref: '#/components/requestBodies/OrderPrintRequest'
      responses:
        '201':
          description: Created
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Print order
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pdf':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |
        Create an order pdf.
        Content and form is decided by type.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-orders-pdf
      requestBody:
        $ref: '#/components/requestBodies/OrderPDFRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create order pdf
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/email':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Send order content by email.

        Content and form is decided by type.
        orderItemUids is omitted when type is RECEIPT

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tenants-orders-email
      requestBody:
        $ref: '#/components/requestBodies/OrderEmailRequest'
      responses:
        '201':
          description: Created
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Send order content by email
      tags:
        - Order
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/settlements':
    get:
      description: |-
        List all settlements for an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-tennants-stores-orders-settlements
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/SettlementListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List order settlements
      tags:
        - OrderSettlement
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      description: |-
        Create a new settlement for an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: post-tennants-stores-orders-settlements
      requestBody:
        $ref: '#/components/requestBodies/OrderSettlementCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SettlementResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new order settlement
      tags:
        - OrderSettlement
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/settlements/{settlementUid}':
    delete:
      description: |-
        Delete a settlement on an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: delete-tennants-stores-orders-settlements-details
      parameters:
        - $ref: '#/components/parameters/forceDeleteQuery'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an order settlement
      tags:
        - OrderSettlement
      x-stoplight:
        id: ola6npn9qmddu
    get:
      description: |-
        Get details for a specific settlement on an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: get-tennants-stores-orders-settlements-details
      parameters:
        - $ref: '#/components/parameters/checkStatusQuery'
        - $ref: '#/components/parameters/includeDisplayMessagesQuery'
      responses:
        '200':
          $ref: '#/components/responses/SettlementResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get order settlement details
      tags:
        - OrderSettlement
      x-stoplight:
        id: a6osbac8wtncx
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/settlementUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      summary: Update order settlement details
      tags:
        - OrderSettlement
      responses:
        '200':
          $ref: '#/components/responses/SettlementResponse'
      operationId: put-tenants-stores-orders-settlements-details
      x-stoplight:
        id: ckxd8vn7waias
      description: Update settlement details
      requestBody:
        $ref: '#/components/requestBodies/SettlementUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/signature':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/status':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    put:
      description: |-
        Set status on an order. Limited to Open and Parked.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      operationId: put-tenants-stores-orders-status
      requestBody:
        $ref: '#/components/requestBodies/OrderStatusChangeRequest'
      responses:
        '200':
          $ref: '#/components/responses/OrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Change order status
      tags:
        - Order
    get:
      summary: Get order status
      tags:
        - Order
      responses:
        '200':
          $ref: '#/components/responses/OrderStatusResponse'
      operationId: get-tenants-stores-orders-status
      x-stoplight:
        id: qbiywha2z25gc
      description: |-
        Use this endpoint to get status information for an order.
        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/paymentmethods':
    get:
      description: |-
        Get list of payment methods for store.

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      operationId: get-tenants-stores-paymentmethods
      parameters:
        - $ref: '#/components/parameters/storePaymentMethodCodeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/StorePaymentMethodListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List store payment methods
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Add a payment method to a store

        Required permissions: PAYMENT_METHOD
      operationId: post-tenants-stores-paymentmethods
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/StorePaymentMethodCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StorePaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add a payment method to a store
      tags:
        - PaymentMethod
  '/tenants/{tenantUid}/stores/{storeUid}/paymentmethods/{storePaymentMethodUid}':
    get:
      description: |-
        Get details of a payment method for store

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      operationId: get-tenants-stores-paymentmethods-details
      responses:
        '200':
          $ref: '#/components/responses/StorePaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get details of a payment method for store
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storePaymentMethodUid'
    put:
      description: |-
        Update a payment method for a store

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      operationId: put-tenants-stores-paymentmethods-details
      requestBody:
        $ref: '#/components/requestBodies/StorePaymentMethodUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StorePaymentMethodResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update a payment method for a store
      tags:
        - PaymentMethod
  '/tenants/{tenantUid}/stores/{storeUid}/paymentmethods/{storePaymentMethodUid}/settlementissuers':
    get:
      description: Get list of issuers for a settlement on a store
      operationId: get-tenants-stores-paymentmethods-settlementissuers
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/StoreSettlementIssuerListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get list of issuers for a settlement on a store
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storePaymentMethodUid'
  '/tenants/{tenantUid}/stores/{storeUid}/paymentmethods/{storePaymentMethodUid}/settlementissuers/{storeSettlementIssuerUid}':
    get:
      description: Get details of an issuer for a settlement on a store
      operationId: get-tenants-stores-paymentmethods-settlementissuers-details
      responses:
        '200':
          $ref: '#/components/responses/StoreSettlementIssuerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get details of an issuer for a settlement on a store
      tags:
        - PaymentMethod
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storePaymentMethodUid'
      - $ref: '#/components/parameters/storeSettlementIssuerUid'
    put:
      operationId: put-tenants-stores-paymentmethods-settlementissuers-details
      description: |-
        Update details of an issuer for a settlement on a store

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/StoreSettlementIssuerUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StoreSettlementIssuerResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update details of an issuer for a settlement on a store
      tags:
        - PaymentMethod
  '/tenants/{tenantUid}/stores/{storeUid}/products/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Searches for products based on criteria set in the request body.

        Returns a response with the stores price and stock availablitity.

        If productGroupUid is set, productGroupScopes is omitted.

        StoreProductDetails contains accumulated values for all warehouses the store owns and has VIEW access to.
      operationId: post-tenants-stores-products-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/StoreProductSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/StoreProductSearchListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search product for a store with stockInfo
      tags:
        - StockInfo
  '/tenants/{tenantUid}/stores/{storeUid}/products/{productUid}':
    get:
      description: |-
        Get store specific information about a product.

        StoreProductDetails contains accumulated values for all warehouses the store owns and has VIEW access to.
      operationId: get-tenants-stores-products-details
      responses:
        '200':
          $ref: '#/components/responses/StoreProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Store product details with stockInfo
      tags:
        - StockInfo
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/productUid'
  '/tenants/{tenantUid}/stores/{storeUid}/purchase-orders':
    get:
      description: Lists all purchase orders.
      operationId: get-tenants-stores-purchase-orders
      parameters:
        - $ref: '#/components/parameters/purchaseOrderStatusQuery'
        - $ref: '#/components/parameters/purchaseOrderExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List purchase orders
      tags:
        - Purchase
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Specify a `currency` when the order is not in local currency. 
        The currency must exist in your foreign currencies. 
        If you leave `exchangeRate` empty, the exchange rate that is on the foreign currency will be used.

        Required permissions: PURCHASE_ORDER
      operationId: post-tenants-stores-purchase-orders
      x-flow-permissions: PURCHASE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/PurchaseOrderCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new purchase order
      tags:
        - Purchase
  '/tenants/{tenantUid}/stores/{storeUid}/purchase-orders/{purchaseOrderUid}':
    delete:
      description: |-
        Deletes a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: delete-tenants-stores-purchase-orders-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a purchase order
      tags:
        - Purchase
    get:
      description: Get details for a purchase order.
      operationId: get-tenants-stores-purchase-orders-details
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get purchase order details
      tags:
        - Purchase
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/purchaseOrderUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Specify a `currency` when the order is not in local currency. 
        The currency must exist in your foreign currencies. 
        If you leave `exchangeRate` empty, the exchange rate that is on the foreign currency will be used.

        Required permissions: PURCHASE_ORDER
      operationId: put-tenants-stores-purchase-orders-details
      x-flow-permissions: PURCHASE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/PurchaseOrderUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update purchase order details
      tags:
        - Purchase
  '/tenants/{tenantUid}/stores/{storeUid}/purchase-orders/{purchaseOrderUid}/purchase-order-items':
    get:
      description: |-
        Lists all items on a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: get-tenants-stores-purchase-orders-items
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderItemListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List purchase order items
      tags:
        - Purchase
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/purchaseOrderUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Adds an item to a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: post-tenants-stores-purchase-orders-items
      requestBody:
        $ref: '#/components/requestBodies/PurchaseOrderItemCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add a purchase order item
      tags:
        - Purchase
  '/tenants/{tenantUid}/stores/{storeUid}/purchase-orders/{purchaseOrderUid}/purchase-order-items/{purchaseOrderItemUid}':
    delete:
      description: |-
        Removes an item from a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: delete-tenants-stores-purchase-orders-purchase-order-items-details
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Remove a purchase order item
      tags:
        - Purchase
    get:
      description: |-
        Get details for an item on a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: get-tenants-stores-purchase-orders-purchase-order-items-details
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderItemResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get purchase order item details
      tags:
        - Purchase
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/purchaseOrderUid'
      - $ref: '#/components/parameters/purchaseOrderItemUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for an item on a purchase order.

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: put-tenants-stores-purchase-orders-purchase-order-items-details
      requestBody:
        $ref: '#/components/requestBodies/PurchaseOrderItemUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update purchase order item details
      tags:
        - Purchase
  '/tenants/{tenantUid}/stores/{storeUid}/purchase-orders/{purchaseOrderUid}/receipt':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/purchaseOrderUid'
    post:
      description: |-
        Send receipt as PDF, print on printer or get as PDF

        Required permissions: PURCHASE_ORDER
      x-flow-permissions: PURCHASE_ORDER
      operationId: post-tenants-stores-purchase-orders-receipt
      requestBody:
        $ref: '#/components/requestBodies/PurchaseOrderEmailNotificationRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '201':
          description: Created
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Print or send receipt
      tags:
        - Purchase
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}/receipt':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/receivementUid'
    post:
      description: |-
        Send receivement receipt as PDF, print on printer or get as PDF

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: post-tenants-stores-receivements-receipt
      requestBody:
        $ref: '#/components/requestBodies/EmailNotificationRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '201':
          description: Created
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Print or send receivement receipt
      x-stoplight:
        id: a9jxzh8l6wc8w
      tags:
        - Receivement
      deprecated: true
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}/email':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/receivementUid'
    post:
      description: |-
        Email PDF of receivement receipt

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: post-tenants-stores-receivements-email-receipt
      requestBody:
        $ref: '#/components/requestBodies/EmailNotificationRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '201':
          description: Created
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Email PDF of receivement receipt
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}/download':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/receivementUid'
    get:
      description: |-
        Download PDF of receivement receipt

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: get-tenants-stores-receivements-download-receipt
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '400':
          description: Bad Request
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Download PDF of receivement receipt
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/receivements':
    get:
      description: |-
        List all receivements.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: get-tenants-stores-receivements
      parameters:
        - $ref: '#/components/parameters/receivementProductUidQuery'
        - $ref: '#/components/parameters/receivementPurchaseOrderUidQuery'
        - $ref: '#/components/parameters/receivementExternalIdQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/receivementStatusQuery'
        - $ref: '#/components/parameters/receivementCreatedFromQuery'
        - $ref: '#/components/parameters/receivementCreatedToQuery'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List receivements
      tags:
        - Receivement
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Create a new receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: post-tenants-stores-receivements
      requestBody:
        $ref: '#/components/requestBodies/ReceivementCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new receivement
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}':
    delete:
      description: |-
        Delete a receivement. Only allowed if ReceivementStatus is not UPDATING or COMPLETED.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: delete-tenants-stores-receivements-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a receivement
      tags:
        - Receivement
    get:
      description: |-
        Get details for a receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: get-tenants-stores-receivements-details
      responses:
        '200':
          $ref: '#/components/responses/ReceivementResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get receivement details
      tags:
        - Receivement
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receivementUid'
    put:
      description: |-
        Update the details of a receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: put-tenants-stores-receivements-details
      requestBody:
        $ref: '#/components/requestBodies/ReceivementUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update receivement details
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}/items':
    get:
      description: |-
        List all items belonging to a specific receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: get-tenants-stores-receivements-items
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementItemListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List receivement items
      tags:
        - Receivement
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receivementUid'
    post:
      description: |-
        Add an item to a receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: post-tenants-stores-receivements-items
      requestBody:
        $ref: '#/components/requestBodies/ReceivementItemCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementItemResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Add an item to a receivement
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/receivements/{receivementUid}/items/{receivementItemUid}':
    delete:
      description: |-
        Remove an item from a receivement. Only possible if the item does not have UPDATING or RECEIVED status.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: delete-tenants-stores-receivements-items-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: ''
      tags:
        - Receivement
    get:
      description: |-
        Get details on an item on a receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: get-tenants-stores-receivements-items-details
      responses:
        '200':
          $ref: '#/components/responses/ReceivementItemResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get receivement item details
      tags:
        - Receivement
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receivementUid'
      - $ref: '#/components/parameters/receivementItemUid'
    put:
      description: |-
        Update details of an item on a receivement.

        Required permissions: RECEIVEMENT
      x-flow-permissions: RECEIVEMENT
      operationId: put-tenants-stores-receivements-items-details
      requestBody:
        $ref: '#/components/requestBodies/ReceivementItemUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ReceivementItemResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update receivement item details
      tags:
        - Receivement
  '/tenants/{tenantUid}/stores/{storeUid}/extensions':
    get:
      description: |-
        List extensions for a store

        Required permissions: EXTENSION 
      x-flow-permissions: EXTENSION
      operationId: get-stores-extensions
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/StoreExtensionListResponse'
      security:
        - authToken: []
        - accessToken: []
      summary: List extensions for a store
      tags:
        - Extensions
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Add a new extension to a store

        Required permissions: EXTENSION 
      x-flow-permissions: EXTENSION
      operationId: post-stores-extensions
      requestBody:
        $ref: '#/components/requestBodies/StoreExtensionCreateRequest'
      responses:
        '201':
          $ref: '#/components/responses/StoreExtensionResponse'
      security:
        - authToken: []
      summary: Add a new extension to a store
      tags:
        - Extensions
  '/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}':
    delete:
      description: |-
        Deletes a store extension.

        Required permissions: EXTENSION 
      x-flow-permissions: EXTENSION
      operationId: delete-stores-extensions
      responses:
        '204':
          description: No Content
      security:
        - authToken: []
      summary: Delete a store extension
      tags:
        - Extensions
    get:
      description: |-
        Get details for a store extension.

        Required permissions: EXTENSION 
      x-flow-permissions: EXTENSION
      operationId: get-stores-extensions-details
      responses:
        '200':
          $ref: '#/components/responses/StoreExtensionResponse'
      security:
        - authToken: []
        - accessToken: []
      summary: Get store extension details
      tags:
        - Extensions
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeExtensionUid'
    put:
      description: |-
        Update details for a store extension

        Required permissions: EXTENSION 
      x-flow-permissions: EXTENSION
      operationId: put-stores-extensions-details
      requestBody:
        $ref: '#/components/requestBodies/StoreExtensionUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StoreExtensionResponse'
      security:
        - authToken: []
      summary: Update store extension details
      tags:
        - Extensions
  '/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}/validate-credentials':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeExtensionUid'
    post:
      description: |-
        Validates that the store extension's saved credentials are correct by calling the underlying provider.

        Required permissions: EXTENSION
      x-flow-permissions: EXTENSION
      operationId: post-stores-extensions-validate-credentials
      responses:
        '204':
          description: Credentials are valid
      security:
        - authToken: []
      summary: Validate store extension credentials
      tags:
        - Extensions
  '/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}/payment-terminals':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeExtensionUid'
    get:
      description: |-
        Lists payment terminals available through the store extension.

        Required permissions: EXTENSION,TILL
      x-flow-permissions: 'EXTENSION,TILL'
      operationId: get-stores-extensions-payment-terminals
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentTerminal'
      security:
        - authToken: []
        - accessToken: []
      summary: List payment terminals for a store extension
      tags:
        - Extensions
  '/tenants/{tenantUid}/stores/{storeUid}/stock/{productUid}':
    get:
      description: |-
        Lists warehouses with available stock that the specified store has access to.

        The list will only contain warehouses that the store has "VIEW" access to.
      operationId: get-tenants-stores-stock-details
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - schema:
            type: string
          in: query
          name: warehouseUid
          description: Filter by warehouse uid
      responses:
        '200':
          $ref: '#/components/responses/StockListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List available stock for a store
      tags:
        - StockInfo
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/productUid'
  '/tenants/{tenantUid}/stores/{storeUid}/till':
    get:
      description: Get till information by token information
      operationId: get-tenants-stores-till
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
        '404':
          description: Not Found
      security:
        - accessToken: []
      summary: Get Till by token information
      tags:
        - Store
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
  '/tenants/{tenantUid}/stores/{storeUid}/till/status':
    get:
      description: |-
        Get till status by using token information

        Required permissions: SALES_ORDER,RETURN_ORDER,REPORTING
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER,REPORTING'
      operationId: get-tenants-stores-till-status
      responses:
        '200':
          $ref: '#/components/responses/TillCashReportResponse'
      security:
        - accessToken: []
      summary: Get till status details by token information
      tags:
        - Store
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Set a new till status by token information

        Required permissions: SALES_ORDER,RETURN_ORDER
      operationId: post-tenants-stores-till-status
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/TillStatusRequest'
      responses:
        '200':
          $ref: '#/components/responses/TillCashReportResponse'
      security:
        - accessToken: []
      summary: Set a new till status by token information
      tags:
        - Store
  '/tenants/{tenantUid}/stores/{storeUid}/tills':
    get:
      description: Lists all tills.
      operationId: get-tenants-stores-tills
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/TillListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List tills
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Creates a new till.

        Required permissions: TILL
      operationId: post-tenants-stores-tills
      x-flow-permissions: TILL
      requestBody:
        $ref: '#/components/requestBodies/TillCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new till
      tags:
        - Till
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}':
    delete:
      description: |-
        Deletes a till.

        Required permissions: TILL
      operationId: delete-tenants-stores-tills-details
      x-flow-permissions: TILL
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a till
      tags:
        - Till
    get:
      description: Get details for a till.
      operationId: get-tenants-stores-tills-details
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get till details
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Updates details for a till.

        Required permissions: TILL
      operationId: put-tenants-stores-tills-details
      x-flow-permissions: TILL
      requestBody:
        $ref: '#/components/requestBodies/TillUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update till details
      tags:
        - Till
    post:
      summary: Special operations on till
      tags:
        - Till
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
      operationId: post-tenants-stores-tills-details
      x-flow-permissions: TILL_OPERATION
      x-stoplight:
        id: n2al0swznlpai
      x-internal: true
      description: |-
        This endpoint triggers special operations on a till. These are not configuration changes, but actions or functions that can be executed on the till.
        Use this endpoint for support-related tasks or other operational routines that need to be performed directly on a till.

        Required permissions: TILL_OPERATION
      requestBody:
        $ref: '#/components/requestBodies/TillOperationRequest'
      security:
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/cashdrawer':
    get:
      description: Get cashdrawer status for the cashdrawer connect to the current till
      operationId: get-tenants-stores-tills-cashdrawer
      responses:
        '200':
          $ref: '#/components/responses/CashdrawerStatusSchemaResponse'
        '404':
          description: Not Found
      security:
        - accessToken: []
      summary: Get cashdrawer status for a till
      tags:
        - Till
      x-internal: false
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tillUid'
    post:
      description: |-
        Open the cashdrawer for the current till

        Required permissions: SALES_ORDER,RETURN_ORDER
      operationId: post-tenants-stores-tills-cashdrawer
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
        '406':
          description: Cashdrawer could not be opened
      security:
        - accessToken: []
      summary: Open cashdrawer
      tags:
        - Till
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/cashreports':
    get:
      description: Get a cash report
      operationId: get-tenants-stores-tills-cashreports
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/cashreportFromDateQuery'
        - $ref: '#/components/parameters/cashreportToDateQuery'
      responses:
        '200':
          $ref: '#/components/responses/TillCashreportListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all cash control reports
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/cashreports':
    get:
      description: List all cashreports for a store
      operationId: get-tenants-stores-cashreports
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/cashreportFromDateQuery'
        - $ref: '#/components/parameters/cashreportToDateQuery'
      responses:
        '200':
          $ref: '#/components/responses/StoreCashreportListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all cash control reports for a store
      x-stoplight:
        id: kzafd1021ygt5
      tags:
        - Store
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/cashreports/{cashreportUid}':
    get:
      operationId: get-tenants-stores-tills-cashreports-details
      description: Get cash control details
      responses:
        '200':
          $ref: '#/components/responses/TillCashReportResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get a specific cash report
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/cashreportUid'
    put:
      description: |-
        The comment field can even be updated on a cashreport with status `CLOSED`.  
        All other fields can only be set as long as status is *not* `CLOSED`. 

        Required permissions: TILL_OPERATION
      operationId: put-tenants-stores-tills-cashreports-details
      x-flow-permissions: TILL_OPERATION
      requestBody:
        $ref: '#/components/requestBodies/CashReportUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TillCashReportResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update cash report
      tags:
        - Till
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/cashreports/{cashreportUid}/withdrawals':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/cashreportUid'
    post:
      description: |-
        Withdraw or deposit cash at cashdrawer 

        Required permissions: TILL_OPERATION
      operationId: post-tenants-stores-tills-cashreports-withdrawal
      x-flow-permissions: TILL_OPERATION
      requestBody:
        $ref: '#/components/requestBodies/CashReportWithdrawalRequest'
      responses:
        '200':
          description: OK
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Withdraw or deposit cash at cashdrawer
      tags:
        - Till
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/device':
    delete:
      description: |-
        Remove a device from a till.

        Required permissions: TILL
      operationId: delete-tenants-stores-tills-device
      x-flow-permissions: TILL
      responses:
        '200':
          $ref: '#/components/responses/TillResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Remove a device from a till
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Register a new device to a till.

        Required permissions: TILL
      operationId: post-tenants-stores-tills-device
      x-flow-permissions: TILL
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/TillDeviceRegisterRequest'
      responses:
        '200':
          description: OK
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Register a device on for a till
      tags:
        - Till
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/status':
    get:
      description: Get till status by using token information and storeUid from url
      operationId: get-tenants-stores-storeid-tills-tillid-status
      responses:
        '200':
          $ref: '#/components/responses/TillCashReportResponse'
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      summary: Get till status details by tillUid
      tags:
        - Till
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/xzreport':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Get a X/Z report for a specific date for the selected till. Returns a ZReport json object

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      operationId: post-tenants-stores-tills-xzreport
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/XZReportPDFRequest'
      responses:
        '200':
          $ref: '#/components/responses/ZReportResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get X/Z-Report for a till on a specific date. Returns a ZReport object
      tags:
        - AccountingReports
  '/tenants/{tenantUid}/stores/{storeUid}/tills/{tillUid}/xzreport/download':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tillUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: Get a X/Z report for a specific date for the selected till.
      operationId: post-tenants-stores-tills-xzreport-download
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/XZReportPDFRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get X/Z-Report for a till on a specific date
      tags:
        - AccountingReports
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses':
    get:
      description: List all warehouses.
      operationId: get-tenants-stores-warehouses
      parameters:
        - $ref: '#/components/parameters/warehouseExternalIdQuery'
        - $ref: '#/components/parameters/warehouseNameQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/WarehouseListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List warehouses
      tags:
        - Warehouse
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create a new warehouse.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: post-tenants-stores-warehouses
      requestBody:
        $ref: '#/components/requestBodies/WarehouseCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/WarehouseResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new warehouse
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/access':
    get:
      description: Lists all warehouses this store has access to.
      operationId: get-tenants-stores-warehouses-access
      parameters:
        - $ref: '#/components/parameters/warehouseRoleQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/MyWarehouseAccessListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List warehouse access
      tags:
        - Warehouse
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}':
    delete:
      description: |-
        Deletes a warehouse.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: delete-tenants-stores-warehouses-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a warehouse
      tags:
        - Warehouse
    get:
      description: Get details a warehouse.
      operationId: get-tenants-stores-warehouses-details
      responses:
        '200':
          $ref: '#/components/responses/WarehouseResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get warehouse details
      tags:
        - Warehouse
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: |-
        Update details for a warehouse. Partial updates are allowed.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: put-tenants-stores-warehouses-details
      requestBody:
        $ref: '#/components/requestBodies/WarehouseUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/WarehouseResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update warehouse details
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/access':
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Grants access for a store to a warehouse.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: post-tenants-stores-warehouses-access
      requestBody:
        $ref: '#/components/requestBodies/WarehouseAccessGrantRequest'
      responses:
        '200':
          $ref: '#/components/responses/WarehouseAccessResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Grant warehouse access
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/access/{warehouseAccessUid}':
    delete:
      description: |-
        Revokes access for a store to a warehouse.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: delete-tenants-stores-warehouses-access-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Revoke warehouse access
      tags:
        - Warehouse
    parameters:
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseAccessUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock':
    get:
      description: |-
        Lists all stock on a warehouse.
        Use the Accept header to choose the response format

        Available formats: json, PDF and spreadsheet (excel file).

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: get-tenants-stores-warehouses-stock
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/productGroupUidsQuery'
        - $ref: '#/components/parameters/brandUidsQuery'
      responses:
        '200':
          $ref: '#/components/responses/StockListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List stock
      tags:
        - StockInfo
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/batch':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
    put:
      description: |-
        Change stock for a list of products in a warehouse (max 1000 entries). 

        The request contains two quantity fields `quantity` and `changeQuantity`. 
        Both may not be set in the same entry.  
        Use `quantity` to set a new total stock for the product.  
        Use `changeQuantity` to adjust the product's stock by a positive or negative number to 
        increase or decrease stock.  
        Use `averageCost` to perform new calculation of stock average cost.  
        At least one of these three fields must be set on each entry.

        If an error is returned, no changes have been made, all changes are rolled back.
        The error is a description of the first error met.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: put-tenants-stores-warehouses-stock-adjust-batch
      requestBody:
        $ref: '#/components/requestBodies/BatchAdjustStockRequest'
      responses:
        '200':
          $ref: '#/components/responses/AdjustStockBatchResponse'
        '207':
          $ref: '#/components/responses/AdjustStockBatchResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: BATCH Set stock for a list of products in a warehouse
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}':
    get:
      description: Returns stock for a particular product in the specified warehouse.
      operationId: get-tenants-stores-warehouses-stock-details
      responses:
        '200':
          $ref: '#/components/responses/StockResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get stock for product in specified warehouse
      tags:
        - StockInfo
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
    put:
      description: |-
        The request contains two quantity fields `quantity` and `changeQuantity`. 
        Both may not be set in the same entry.  
        Use `quantity` to set a new total stock for the product.  
        Use `changeQuantity` to adjust the product's stock by a positive or negative number to 
        increase or decrease stock.  
        Use `averageCost` to perform new calculation of stock average cost.  
        At least one of these three fields must be set on each entry.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: put-tenants-stores-warehouses-stock-adjust
      requestBody:
        $ref: '#/components/requestBodies/AdjustStockRequest'
      responses:
        '200':
          $ref: '#/components/responses/NullableStockResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Set stock for product in specified warehouse
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}/details':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
    put:
      summary: Update details for a product on a warehouse
      operationId: put-tenants-stores-warehouses-stock-product-details
      responses:
        '200':
          $ref: '#/components/responses/StockResponse'
      x-stoplight:
        id: ffu9jq2u1eybl
      description: |-
        Update details for a product on a warehouse

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      security:
        - authToken: []
        - integrationToken: []
        - accessToken: []
      requestBody:
        $ref: '#/components/requestBodies/UpdateWarehouseProductDetailRequest'
      tags:
        - Warehouse
        - StockInfo
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}/logs/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
    post:
      description: |-
        Returns stock logs for a particular product in the specified warehouse.

        Required permissions: WAREHOUSE_HISTORY
      x-flow-permissions: WAREHOUSE_HISTORY
      operationId: post-tenants-stores-warehouses-stock-search-logs
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      requestBody:
        $ref: '#/components/requestBodies/StockLogSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/StockLogListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search in stock logs for product in specified warehouse
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}/move':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
    post:
      description: |-
        Move stock for a product to another warehouse.

        The response will show the stock details for the warehouse you are moving from

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      operationId: post-tenants-stores-warehouses-stock-move
      requestBody:
        $ref: '#/components/requestBodies/MoveStockRequest'
      responses:
        '200':
          $ref: '#/components/responses/StockResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Move stock for a product from one warehouse to another
      tags:
        - Warehouse
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}/serialnumbers':
    get:
      description: List all serial number information for a product in a warehouse
      operationId: get-tenant-store-warehouse-stock-product-serialnumbers
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/StockDetailListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all serial number information for a product in a warehouse
      tags:
        - Warehouse
      x-internal: false
      x-stoplight:
        id: 5npw9rpnohuxf
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stock/{productUid}/serialnumbers/{serialnumber}':
    get:
      description: |
        For products with SerialNoRequired = ON_RECEIVE. 
        when availabilityType is not set, or DELIVER:
          Check if a serialnumber is in stock for a productUid and warehouseUid. Returns 200 if in stock, else 404. 
          200 is returned for all other products.
        when availabilityType = RECEIVE:
          Check if a serialnumber is NOT in stock for a productUid and warehouseUid. Returns 200 if not in stock, else 400. 
          200 is returned for all other products.
      operationId: get-tenants-stores-warehouses-stock-product-serialnumber-check
      parameters:
        - $ref: '#/components/parameters/availabilityTypeQuery'
      responses:
        '200':
          description: OK
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Check availability on a serial number for warehouse and product.
      tags:
        - Warehouse
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/serialnumber'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings':
    get:
      description: |-
        Lists all stocktakings for a warehouse.

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: get-tenants-stores-warehouses-stocktakings
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/stocktakingStatusQuery'
        - $ref: '#/components/parameters/stocktakingTypeQuery'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all stocktakings
      tags:
        - Stocktaking
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create new stocktaking for warehouse

        Required permissions: STOCKTAKING
      operationId: post-tenants-stores-warehouses-stocktakings
      x-flow-permissions: STOCKTAKING
      requestBody:
        $ref: '#/components/requestBodies/StocktakingCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingResponse'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
      summary: Create new stocktaking
      tags:
        - Stocktaking
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}':
    delete:
      description: |-
        Delete a stocktaking

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: delete-tenants-stores-warehouses-stocktakings-details
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a stocktaking
      tags:
        - Stocktaking
    get:
      description: |-
        Get stocktaking details

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: get-tenants-stores-warehouses-stocktakings-details
      parameters: []
      responses:
        '200':
          $ref: '#/components/responses/StocktakingResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get stocktaking details
      tags:
        - Stocktaking
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
    put:
      description: |-
        Update stocktaking for warehouse

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: put-tenants-stores-warehouses-stocktakings-details
      requestBody:
        $ref: '#/components/requestBodies/StocktakingUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingResponse'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
      summary: Update stocktaking details
      tags:
        - Stocktaking
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/control':
    get:
      description: |-
        Get a stocktaking control list

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: get-tenants-stores-warehouses-stocktakings-control
      parameters:
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/StocktakingControlHasDiff'
        - $ref: '#/components/parameters/StocktakingControlHasRegistrations'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingControlResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get a stocktaking control list
      tags:
        - Stocktaking
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/items':
    get:
      description: |-
        Get item list for a stocktaking

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: get-tenants-stores-warehouses-stocktakings-items
      parameters:
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingItemListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get item list for a stocktaking
      tags:
        - Stocktaking
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
    post:
      description: |-
        Add productUids to a stocktaking

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: post-tenants-stores-warehouses-stocktakings-items
      requestBody:
        $ref: '#/components/requestBodies/StocktakingItemListCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingItemListCreateResponse'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
      summary: Add productUids to a stocktaking
      tags:
        - Stocktaking
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/items/{stocktakingItemUid}':
    get:
      description: |-
        Get an item on a stocktaking

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      summary: Get an item on a stocktaking
      tags:
        - Stocktaking
      responses:
        '200':
          $ref: '#/components/responses/StocktakingItemResponse'
      operationId: get-tenants-stores-warehouses-stocktakings-items-details
      x-stoplight:
        id: h13dugyq58sdi
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update an item on a stocktaking
      tags:
        - Stocktaking
      responses:
        '200':
          $ref: '#/components/responses/StocktakingItemResponse'
      operationId: put-tenants-stores-warehouses-stocktakings-items-details
      description: |-
        Update note on a stock taking item

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      x-stoplight:
        id: y8m3wcd4uisjx
      requestBody:
        $ref: '#/components/requestBodies/StocktakingItemUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      operationId: delete-tenants-stores-warehouses-stocktakings-items-details
      description: |-
        Delete an item from a stocktaking with all registrations

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an item from a stocktaking
      tags:
        - Stocktaking
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
      - $ref: '#/components/parameters/stocktakingItemUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/items/{stocktakingItemUid}/registrations':
    get:
      description: |-
        Get all registrations for a stocktaking item

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      operationId: get-tenants-stores-warehouses-stocktakings-items-registrations
      parameters:
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      responses:
        '200':
          $ref: '#/components/responses/StocktakingRegistrationListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get all registrations for a stocktaking item
      tags:
        - Stocktaking
      x-stoplight:
        id: qndlbeii5tvux
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
      - $ref: '#/components/parameters/stocktakingItemUid'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/register':
    parameters:
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/stocktakingUid'
    post:
      operationId: post-tenants-stores-warehouses-stocktakings-register
      description: |-
        A stocktaking registration can only be done while stocktaking has status `IN_PROGRESS`.

        Required permissions: STOCKTAKING
      x-flow-permissions: STOCKTAKING
      requestBody:
        $ref: '#/components/requestBodies/StocktakingRegistrationRequest'
      responses:
        '204':
          description: OK
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Make a stocktaking registration
      tags:
        - Stocktaking
  '/tenants/{tenantUid}/suppliers':
    get:
      description: List all suppliers.
      operationId: get-tenants-suppliers
      parameters:
        - $ref: '#/components/parameters/supplierExternalIdQuery'
        - $ref: '#/components/parameters/supplierNameQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/SupplierListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List suppliers
      x-internal: false
      tags:
        - Supplier
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-tenants-suppliers
      description: |-
        Create a new supplier.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      requestBody:
        $ref: '#/components/requestBodies/SupplierCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SupplierResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new supplier
      tags:
        - Supplier
  '/tenants/{tenantUid}/suppliers/{supplierUid}':
    delete:
      operationId: delete-tenants-suppliers-details
      description: |-
        Deletes a supplier.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a supplier
      tags:
        - Supplier
    get:
      description: Get details for a supplier.
      operationId: get-tenants-suppliers-details
      responses:
        '200':
          $ref: '#/components/responses/SupplierResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get supplier details
      x-internal: false
      tags:
        - Supplier
    parameters:
      - $ref: '#/components/parameters/supplierUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      operationId: put-tenants-suppliers-details
      description: |-
        Update details for a supplier. Partial updates are allowed.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      requestBody:
        $ref: '#/components/requestBodies/SupplierUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SupplierResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update supplier details
      tags:
        - Supplier
  '/tenants/{tenantUid}/suppliers/{supplierUid}/products':
    get:
      description: Lists all supplier products for a supplier. If the product has been linked to a tenant productUid then additional information will be added.
      operationId: get-tenants-suppliers-products
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - schema:
            type: string
          in: query
          name: supplierSku
          description: Search for a product from the specific supplier
      responses:
        '200':
          $ref: '#/components/responses/SupplierProductListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List supplier products for supplier
      tags:
        - Supplier
    parameters:
      - $ref: '#/components/parameters/supplierUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      operationId: post-tenants-suppliers-products
      description: |-
        Create a new supplier product.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      requestBody:
        $ref: '#/components/requestBodies/SupplierProductCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SupplierProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create a new supplier product
      tags:
        - Supplier
  '/tenants/{tenantUid}/products/{productUid}/suppliers':
    get:
      description: Lists all supplier products for a productUid. If the product has been linked to a tenant productUid then additional information will be added.
      operationId: get-tenants-products-suppliers
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/SupplierProductListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List supplier products for product
      tags:
        - Purchase
      x-stoplight:
        id: w8xnqfkodgukp
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
  '/tenants/{tenantUid}/suppliers/{supplierUid}/products/{supplierProductUid}':
    delete:
      operationId: delete-tenants-suppliers-products-details
      description: |-
        Delete a supplier product.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete supplier product
      tags:
        - Supplier
    get:
      description: Get details for a supplier product.
      operationId: get-tenants-suppliers-products-details
      responses:
        '200':
          $ref: '#/components/responses/SupplierProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get supplier product details
      tags:
        - Supplier
    parameters:
      - $ref: '#/components/parameters/supplierUid'
      - $ref: '#/components/parameters/supplierProductUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      operationId: put-tenants-suppliers-products-details
      description: |-
        Update details for a supplier product.

        Required permissions: SUPPLIER
      x-flow-permissions: SUPPLIER
      requestBody:
        $ref: '#/components/requestBodies/SupplierProductUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/SupplierProductResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update supplier product
      tags:
        - Supplier
  '/tenants/{tenantUid}/users':
    get:
      description: List all users.
      operationId: get-tenants-users
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/tenantuserQueryQuery'
        - $ref: '#/components/parameters/tenantuserOrganizationUid'
        - $ref: '#/components/parameters/tenantuserStoreUid'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List users
      tags:
        - Tenant
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Add user to tenant

        Required permissions: TENANT_USER
      operationId: post-tenants-users
      x-flow-permissions: TENANT_USER
      requestBody:
        $ref: '#/components/requestBodies/TenantUserCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new user on a tenant
      tags:
        - Tenant
  '/tenants/{tenantUid}/users/{tenantUserUid}':
    delete:
      description: |-
        Deletes a user completely from a tenant.

        Required permissions: TENANT_USER
      operationId: delete-tenants-users-details
      x-flow-permissions: TENANT_USER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a user from a tenant
      tags:
        - Tenant
    get:
      description: |-
        Get details for a user.

        Required permissions: TENANT_USER
      x-flow-permissions: TENANT_USER
      operationId: get-tenants-users-details
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get user details
      tags:
        - Tenant
    parameters:
      - $ref: '#/components/parameters/tenantUserUid'
      - $ref: '#/components/parameters/tenantUid'
    put:
      description: Update user access for a tenant
      operationId: put-tenants-users-details
      parameters:
        - $ref: '#/components/parameters/resendInviteQuery'
      requestBody:
        $ref: '#/components/requestBodies/TenantUserUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantUserResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update tenant user
      tags:
        - Tenant
  '/tenants/{tenantUid}/users/{tenantUserUid}/tokens':
    get:
      description: |-
        Get list of integration tokens for a tenant user.

        Required permissions: USER_TOKEN
      operationId: get-tenants-users-tokens
      x-flow-permissions: USER_TOKEN
      responses:
        '200':
          $ref: '#/components/responses/TenantUserTokenListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get list of integration tokens for a tenant user.
      tags:
        - Tenant
    parameters:
      - $ref: '#/components/parameters/tenantUserUid'
      - $ref: '#/components/parameters/tenantUid'
    post:
      description: |-
        Create integration token for a tenant user

        Required permissions: USER_TOKEN
      operationId: post-tenants-users-tokens
      x-flow-permissions: USER_TOKEN
      responses:
        '200':
          $ref: '#/components/responses/TenantUserTokenListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create integration token for a tenant user
      tags:
        - Tenant
  '/tenants/{tenantUid}/users/{tenantUserUid}/tokens/{tenantUserTokenUid}':
    delete:
      description: |-
        Deletes an integration token for a tenant user

        Required permissions: USER_TOKEN
      operationId: delete-tenants-users-tokens-details
      x-flow-permissions: USER_TOKEN
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete an integration token from a tenant user
      tags:
        - Tenant
    parameters:
      - $ref: '#/components/parameters/tenantUserTokenUid'
      - $ref: '#/components/parameters/tenantUserUid'
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/users/{tenantUserUid}/roles':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantUserUid'
    get:
      summary: List role assignments for a user
      description: |
        Retrieves a list of all roles assigned to the specific user within the tenant.
      tags:
        - Permission
      responses:
        '200':
          $ref: '#/components/responses/TenantUserRoleAssignmentListResponse'
      operationId: list-tenant-user-role-assignments
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Assign a role to a user
      description: |
        Assigns a new role to the user. Can be a tenant-wide role or scoped to a specific store.

        Required permissions: TENANT_USER_ROLE_ASSIGNMENT
      x-flow-permissions: TENANT_USER_ROLE_ASSIGNMENT
      tags:
        - Permission
      requestBody:
        $ref: '#/components/requestBodies/TenantUserRoleAssignmentRequest'
      responses:
        '201':
          $ref: '#/components/responses/TenantUserRoleAssignmentResponse'
      operationId: create-tenant-user-role-assignment
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/users/{tenantUserUid}/roles/{tenantUserRoleAssignmentUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantUserUid'
      - $ref: '#/components/parameters/tenantUserRoleAssignmentUid'
    get:
      summary: Get a role assignment
      description: |
        Retrieves details of a specific role assignment.

        Required permissions: TENANT_USER_ROLE_ASSIGNMENT
      x-flow-permissions: TENANT_USER_ROLE_ASSIGNMENT
      tags:
        - Permission
      responses:
        '200':
          $ref: '#/components/responses/TenantUserRoleAssignmentResponse'
      operationId: get-tenant-user-role-assignment
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Remove a role assignment
      description: |
        Removes a specific role assignment from the user.

        Required permissions: TENANT_USER_ROLE_ASSIGNMENT
      x-flow-permissions: TENANT_USER_ROLE_ASSIGNMENT
      tags:
        - Permission
      responses:
        '204':
          description: Role assignment removed
      operationId: delete-tenant-user-role-assignment
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/users/search':
    post:
      description: |-
        Search for users

        Required permissions: TENANT_USER
      x-flow-permissions: TENANT_USER
      operationId: post-tenants-users-search
      responses:
        '200':
          $ref: '#/components/responses/TenantUserListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Search for tenant user
      tags:
        - Tenant
      requestBody:
        $ref: '#/components/requestBodies/TenantUserSearchRequest'
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
      x-stoplight:
        id: g9lqsje66l3zj
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/webhooks':
    get:
      description: |-
        List all webhooks.

        Required permissions: WEBHOOK
      x-flow-permissions: WEBHOOK
      operationId: get-tenants-webhooks
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/httpTransportUidQuery'
      responses:
        '200':
          $ref: '#/components/responses/WebhookListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all webhooks
      tags:
        - Webhooks
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks':
    get:
      description: |-
        List all webhooks for a http transport.

        Required permissions: WEBHOOK
      x-flow-permissions: WEBHOOK
      operationId: get-tenants-httptransports-webhooks
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/WebhookListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List all webhooks for a httpTransport
      x-stoplight:
        id: xgsyrtnaqefjc
      tags:
        - Webhooks
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/httpTransportUid'
    post:
      description: |-
        Add webhook on a httpTransport

        Required permissions: WEBHOOK
      operationId: post-tenants-httptransports-webhooks
      x-flow-permissions: WEBHOOK
      requestBody:
        $ref: '#/components/requestBodies/WebhookCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/WebhookResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Create new webhook on a httpTransport
      x-stoplight:
        id: j587y9vlkoled
      tags:
        - Webhooks
  '/tenants/{tenantUid}/httptransports/{httpTransportUid}/webhooks/{webhookUid}':
    delete:
      description: |-
        Deletes a webhook from a tenant.

        Required permissions: WEBHOOK
      operationId: delete-tenants-httptransports-webhooks-details
      x-flow-permissions: WEBHOOK
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Delete a webhook from a tenant
      x-stoplight:
        id: gymi9tigatelw
      tags:
        - Webhooks
    get:
      description: |-
        Get details for a webhook.

        Required permissions: WEBHOOK
      x-flow-permissions: WEBHOOK
      operationId: get-tenants-httptransports-webhooks-details
      responses:
        '200':
          $ref: '#/components/responses/WebhookResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Get webhook details
      x-stoplight:
        id: 17yys27rpgfka
      tags:
        - Webhooks
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/webhookUid'
      - $ref: '#/components/parameters/httpTransportUid'
    put:
      description: |-
        Update webhook for a tenant

        Required permissions: WEBHOOK
      operationId: put-tenants-httptransports-webhooks-details
      x-flow-permissions: WEBHOOK
      requestBody:
        $ref: '#/components/requestBodies/WebhookUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/WebhookResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Update tenant webhook
      x-stoplight:
        id: k6nwbce23krbl
      tags:
        - Webhooks
  /vat:
    get:
      description: Get a list of current VAT codes.
      operationId: get-vat
      parameters:
        - $ref: '#/components/parameters/vatCountryCodeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/VatCodeListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List VAT codes
      tags:
        - Config
    parameters: []
  '/countries/{countryCode}/vat':
    get:
      description: Get a list of current VAT codes for a specific country code.
      operationId: get-vat-for-country-code
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      responses:
        '200':
          $ref: '#/components/responses/VatCodeListResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: List VAT codes for a country code
      tags:
        - Config
      x-stoplight:
        id: 4aljrr618347e
    parameters:
      - $ref: '#/components/parameters/countryCode'
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List service-orders
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderListResponse'
      operationId: get-serviceorders
      description: |-
        List all service-orders for a tenant store. Default sorting order is by serviceOrderUid ascending.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/serviceOrderStateQuery'
        - $ref: '#/components/parameters/serviceTypeUidsQuery'
        - $ref: '#/components/parameters/assignedUserUidsQuery'
        - $ref: '#/components/parameters/createdFromStoreUidsQuery'
        - $ref: '#/components/parameters/priorityQuery'
    post:
      summary: Create new service-order
      operationId: post-serviceorders
      description: |-
        Create a new service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceOrderResponse'
      tags:
        - Service
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: Get service-order
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderResponse'
      operationId: get-serviceorders-by-id
      description: |-
        Get the data for a given service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update service-order
      operationId: put-serviceorders
      description: |-
        Update data on a given service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - Service
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderUpdateRequest'
    delete:
      summary: Delete service-order
      operationId: delete-serviceorders
      description: |-
        Delete a given service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - Service
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/items':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    post:
      summary: Add new service-order item
      operationId: post-serviceorder-items
      description: |-
        Add a new service-order item.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderItemCreateRequest'
      tags:
        - Service
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/items/{serviceOrderItemUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
      - $ref: '#/components/parameters/serviceOrderItemUid'
    put:
      summary: Update service-order item
      operationId: put-serviceorder-item
      description: |-
        Update a service-order item.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderResponse'
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderItemUpdateRequest'
    delete:
      summary: Delete service-order item
      operationId: delete-serviceorder-item
      description: |-
        Delete a service-order item.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/events':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: List service-order events
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceEventListResponse'
      operationId: get-serviceorders-events
      description: |-
        List all events for a service order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create new service-order event
      operationId: post-serviceorders-events
      description: |-
        Create a new service-order event.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceEventResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceEventCreateRequest'
      tags:
        - Service
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/events/{serviceEventUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
      - $ref: '#/components/parameters/serviceEventUid'
    get:
      summary: Get service-order event
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceEventResponse'
      operationId: get-serviceorders-events-id
      description: |-
        Get a service-order event.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update a service-order event
      operationId: put-serviceorders-events
      description: |-
        Update a service-order event.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceEventResponse'
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceEventUpdateRequest'
    delete:
      summary: Delete service-order event
      operationId: delete-serviceorders-events
      description: |-
        Delete a service-order event.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/hours':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: List service hours
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceHoursListResponse'
      operationId: get-serviceorders-hours
      description: |-
        List hours for a service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create new service hours entry
      operationId: post-serviceorders-hours
      description: |-
        Create new hours entry for a service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceHoursResponse'
      requestBody:
        $ref: '#/components/requestBodies/ServiceHoursCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - Service
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/hours/{serviceHoursUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
      - $ref: '#/components/parameters/serviceHoursUid'
    get:
      summary: Get service hours entry
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceHoursResponse'
      operationId: get-serviceorders-hours-id
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Get a service hours entry
    put:
      summary: Update service hours entry
      operationId: put-serviceorders-hours
      description: |-
        Update a service hours entry.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceHoursResponse'
      tags:
        - Service
      requestBody:
        $ref: '#/components/requestBodies/ServiceHoursUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete service hours entry
      operationId: delete-serviceorders-hours
      description: |-
        Delete a service hours entry.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/notifications':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: List notifications for a service-order
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/NotificationListResponse'
      operationId: get-serviceorders-notifications
      description: |-
        List notifications for a service-order

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/serviceorders/types':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List service types
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceTypeListResponse'
      operationId: get-serviceorders-types
      description: |-
        List service types.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      x-stoplight:
        id: w41y7raqgptqp
    post:
      summary: Create new service type
      operationId: post-serviceorders-types
      description: |-
        Create a new service type.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceTypeResponse'
      tags:
        - Service
      requestBody:
        $ref: '#/components/requestBodies/ServiceTypeCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 2ag3o6l77yn87
  '/tenants/{tenantUid}/serviceorders/types/{serviceTypeUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/serviceTypeUid'
    get:
      summary: Get service type
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceTypeResponse'
      operationId: get-serviceorders-types-id
      description: |-
        Get a service type by ID.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: uc22u2sr1qyu7
    put:
      summary: Update service type
      operationId: put-serviceorders-types
      description: |-
        Update a service type.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceTypeResponse'
      tags:
        - Service
      requestBody:
        $ref: '#/components/requestBodies/ServiceTypeUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: iredkwtnx7y35
    delete:
      summary: Delete service type
      operationId: delete-serviceorders-types
      description: |-
        Delete a service type.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: z4evjadysxsmb
  '/tenants/{tenantUid}/serviceorders/statuses':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List service statuses
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceStatusListResponse'
      operationId: get-serviceorders-statuses
      description: |-
        Get a list of statuses for a service order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      x-stoplight:
        id: t3gywvadkaow5
    post:
      summary: Create new service status
      operationId: post-serviceorders-statuses
      description: |-
        Create a new service status. Set position to reflect which step in the workflow this status will be.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ServiceStatusResponse'
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceStatusCreateRequest'
      x-stoplight:
        id: lgyexa7qn170c
  '/tenants/{tenantUid}/serviceorders/statuses/{serviceStatusUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/serviceStatusUid'
    get:
      summary: Get service status
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceStatusResponse'
      operationId: get-serviceorders-statuses-id
      description: |-
        Get a service status by ID.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: r7t16jc3hr4oq
    put:
      summary: Update service status
      operationId: put-serviceorders-statuses
      description: |-
        Update a given service status. Set position to reflect which step in the workflow this status is.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '200':
          $ref: '#/components/responses/ServiceStatusResponse'
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceStatusUpdateRequest'
      x-stoplight:
        id: a6ivm64fan2rr
    delete:
      summary: Delete service status
      operationId: delete-serviceorders-statuses
      description: |-
        Delete a given service status.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      tags:
        - Service
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 5r0eyuwow14dl
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/pages/{serviceOrderHash}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderHash'
    get:
      summary: Get service order by hash
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderResponse'
      operationId: get-serviceorders-pages-hash
      description: |-
        Get a service order by the public page hash.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/purchase-orders/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search for purchase orders
      tags:
        - Purchase
      responses:
        '200':
          $ref: '#/components/responses/PurchaseOrderListResponse'
      operationId: get-tenants-purchase-orders-search
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/TenantPurchaseOrderSearchRequest'
      description: Search for purchase orders
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/purchase-orders/requests':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search purchase requests
      tags:
        - Purchase
      responses:
        '200':
          $ref: '#/components/responses/PurchaseRequestListResponse'
      operationId: post-purchase-orders-requests
      x-stoplight:
        id: ppd0v4r81hu5l
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      description: |-
        List of products from orders where order item reservation type is `REQUEST_PURCHASE_ORDERORDER`.  
        Optionally filter on organisation, store, supplier, and order state.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PurchaseRequestRequest'
  '/tenants/{tenantUid}/purchase-orders/requests-by-orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search purchase requests
      tags:
        - Purchase
      responses:
        '200':
          $ref: '#/components/responses/PurchaseRequestOrdersListResponse'
      operationId: post-purchase-orders-requests-by-orders
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      description: |-
        List of products from orders where order item reservation type is `REQUEST_PURCHASE_ORDERORDER`.  
        Optionally filter on organisation, store, supplier, and order state.

        The output is group by orders
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PurchaseRequestRequest'
      x-stoplight:
        id: vpdcgivrrb29m
  '/tenants/{tenantUid}/notifications/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search for notifications on a tenant
      operationId: post-tenants-notifications-search
      responses:
        '200':
          $ref: '#/components/responses/NotificationResponse'
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        $ref: '#/components/requestBodies/NotificationSearchRequest'
      description: |-
        Search for notifications on a tenant

        Required permissions: INTERNAL_PURCHASE_ORDER, PURCHASE_ORDER, RECEIVEMENT, RETURN_ORDER, SALES_ORDER, SERVICE_ORDER
      x-flow-permissions: 'INTERNAL_PURCHASE_ORDER,PURCHASE_ORDER,RECEIVEMENT,RETURN_ORDER,SALES_ORDER,SERVICE_ORDER'
      tags:
        - Notifications
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/notifications':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List notifications for a store
      tags:
        - Notifications
      responses:
        '200':
          $ref: '#/components/responses/NotificationListResponse'
      operationId: get-tenants-stores-notifications
      description: |-
        List notifications for a store

        Required permissions: INTERNAL_PURCHASE_ORDER, PURCHASE_ORDER, RECEIVEMENT, RETURN_ORDER, SALES_ORDER, SERVICE_ORDER
      x-flow-permissions: 'INTERNAL_PURCHASE_ORDER,PURCHASE_ORDER,RECEIVEMENT,RETURN_ORDER,SALES_ORDER,SERVICE_ORDER'
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - authToken: []
        - integrationToken: []
    post:
      summary: Send notification to recipient
      operationId: post-tenants-stores-notifications
      responses:
        '200':
          $ref: '#/components/responses/NotificationResponse'
      requestBody:
        $ref: '#/components/requestBodies/NotificationRequest'
      description: |-
        Send notification to recipient. If any of the optional fields `customerUid`, `orderUid` and `serviceOrderUid` is given in request, the ids MUST refer to an existing uid in the flow database.

        Either `message`-field or `templateType` field must be included in the request. If both are supplied, the content from the `message`-field will be used.

        Suppling a `templateType` can require the field `customerUid` or `orderUid` to be included as well. 

        Required permissions: INTERNAL_PURCHASE_ORDER, PURCHASE_ORDER, RECEIVEMENT, RETURN_ORDER, SALES_ORDER, SERVICE_ORDER
      x-flow-permissions: 'INTERNAL_PURCHASE_ORDER,PURCHASE_ORDER,RECEIVEMENT,RETURN_ORDER,SALES_ORDER,SERVICE_ORDER'
      tags:
        - Notifications
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  /linkmobility/callbacks:
    post:
      summary: Callback endpoint for LinkMobility
      operationId: post-linkmobility-callbacks
      responses:
        '200':
          description: OK
      x-internal: true
      tags:
        - Notifications
      requestBody:
        $ref: '#/components/requestBodies/LinkmobilityCallbackRequest'
      description: Callback endpoint for LinkMobility
  '/callbacks/two-onboarding/{tenantUid}/{customerUid}/{customerContactUid}':
    get:
      summary: Callback endpoint Two CustomerContact onboarding
      operationId: get-two-customer-contact-callback
      responses:
        '200':
          description: OK
          content:
            text/html:
              schema:
                type: object
                properties: {}
      x-internal: true
      tags:
        - Notifications
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      description: Callback endpoint Two CustomerContact onboarding
      x-stoplight:
        id: pactxovp5xtt1
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a Customer.
        in: path
        name: customerUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a Customer contact.
        in: path
        name: customerContactUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
  '/callbacks/two-order/{tenantUid}/{orderUid}/{settlementUid}':
    get:
      summary: Callback endpoint Two Order Notification
      operationId: get-two-order-callback
      responses:
        '200':
          description: OK
          content:
            text/html:
              schema:
                type: object
                properties: {}
      x-internal: true
      tags:
        - Notifications
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      description: Callback endpoint Two Order Notification
      x-stoplight:
        id: sstmzu6yaf99c
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to an Order.
        in: path
        name: orderUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a settlement on an order.
        in: path
        name: settlementUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
  '/tenants/{tenantUid}/products/{productUid}/media':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
    post:
      summary: Create new product media
      operationId: post-products-media
      responses:
        '201':
          $ref: '#/components/responses/ProductMediaResponse'
      x-stoplight:
        id: q7xyvk3ma9ggz
      tags:
        - ProductMedia
      description: |-
        When you already have the images that you want to use, add them as the URL. Note that the URLs must be publicly accessible.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductMediaCreateRequest'
    get:
      summary: List product media
      operationId: get-products-media-list
      responses:
        '200':
          $ref: '#/components/responses/ProductMediaListResponse'
      x-stoplight:
        id: 67b37vqmpcggc
      description: 'List media (images, videos) for a given product.'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      tags:
        - ProductMedia
  '/tenants/{tenantUid}/products/{productUid}/media/{productMediaUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/productMediaUid'
    get:
      summary: Get a product media record
      tags:
        - ProductMedia
      responses:
        '200':
          $ref: '#/components/responses/ProductMediaResponse'
      operationId: get-products-media
      x-stoplight:
        id: 4nywz56zddrtl
      description: Retrieve the data record for the given product media.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete a product media record.
      operationId: delete-products-media
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: ljh2hn4bshxqq
      tags:
        - ProductMedia
      description: |-
        Delete a product media record.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update a product media record
      operationId: put-products-media
      responses:
        '200':
          $ref: '#/components/responses/ProductMediaResponse'
      x-stoplight:
        id: sygpc7r12z5a6
      description: |-
        Update a product media record.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      tags:
        - ProductMedia
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductMediaUpdateRequest'
  '/tenants/{tenantUid}/products/{productUid}/media/upload':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
    post:
      summary: Upload product media
      operationId: post-product-media-upload
      responses:
        '201':
          $ref: '#/components/responses/ProductMediaResponse'
      x-stoplight:
        id: 7303vdk1obetw
      description: |-
        Upload a new image or video. We accept two kinds of values in the file field, either  
        ``base64`` a Base64 encoded string of the file content, or  
        ``URL`` a URL of the file from where to download the content (make sure that the URL is accessible).

        Filename is the name with which the file will be uploaded, e.g. "new-image.jpg".

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - ProductMedia
      requestBody:
        $ref: '#/components/requestBodies/ProductMediaUploadRequest'
  '/tenants/{tenantUid}/serviceorders/externalworkshops':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List external workshops
      responses:
        '200':
          $ref: '#/components/responses/ExternalWorkshopListResponse'
      operationId: get-tenants-externalworkshops
      x-stoplight:
        id: wl8yb1c2igp8t
      description: |-
        Get a list of external workshops for a tenant.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - ServiceShipment
    post:
      summary: Create new external workshop
      operationId: post-externalworkshop
      x-flow-permissions: SERVICE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/ExternalWorkshopResponse'
      x-stoplight:
        id: 3pltlkzny3ql3
      description: |-
        Create a new external workshop for a tenant.

        Required permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ExternalWorkshopCreateRequest'
      tags:
        - ServiceShipment
  '/tenants/{tenantUid}/serviceorders/externalworkshops/{externalWorkshopUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/externalWorkshopUid'
    get:
      summary: Get external workshop
      responses:
        '200':
          $ref: '#/components/responses/ExternalWorkshopResponse'
      operationId: get-externalworkshop
      x-stoplight:
        id: ykzb02i66yrmi
      description: |-
        Get a given external workshop.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - ServiceShipment
    put:
      summary: Update external workshop
      operationId: put-externalworkshop
      responses:
        '200':
          $ref: '#/components/responses/ExternalWorkshopResponse'
      x-stoplight:
        id: erjnh3kmpftcw
      description: |-
        Update an external workshop.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ExternalWorkshopUpdateRequest'
      tags:
        - ServiceShipment
    delete:
      summary: Delete external workshop
      operationId: delete-externalworkshop
      description: |-
        Delete an external workshop.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: nvbk28hsl2v6f
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - ServiceShipment
  '/tenants/{tenantUid}/products/{productUid}/media/batch':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
    post:
      summary: Set all media for a product
      operationId: post-product-media-batch
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: qp5j9a76jmsnm
      description: |-
        Set all the media items for a product in one go. The payload is an array refelecting all the media on the given product. In addition to adding the new entries, this will also remove any exising entries that are not in the payload. So an empty array will delete all the product media on the product.

        If no media is set as cover image, the first media added will be used. Only one image can be set as the cover image.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductMediaBatchRequest'
      tags:
        - ProductMedia
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/serviceorders/shipments':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List service shipments
      responses:
        '200':
          $ref: '#/components/responses/ServiceShipmentListResponse'
      operationId: get-service-shipments
      x-stoplight:
        id: qx13s2c5sz6xv
      description: |-
        List service shipments.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - ServiceShipment
    post:
      summary: Create new service shipment
      operationId: post-service-shipment
      responses:
        '201':
          $ref: '#/components/responses/ServiceShipmentResponse'
      x-stoplight:
        id: bz1v1au6rlgf5
      description: |-
        Create new service shipment. For receiver, either a store or an external workshop must be set (by its UID).

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceShipmentCreateRequest'
      tags:
        - ServiceShipment
  '/tenants/{tenantUid}/serviceorders/shipments/{serviceShipmentUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/serviceShipmentUid'
    get:
      summary: Get service shipment
      responses:
        '200':
          $ref: '#/components/responses/ServiceShipmentResponse'
      operationId: get-service-shipment
      x-stoplight:
        id: r9vzrxxmpnfz7
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Get service shipment.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      tags:
        - ServiceShipment
    put:
      summary: Update service shipment
      operationId: put-service-shipment
      responses:
        '200':
          $ref: '#/components/responses/ServiceShipmentResponse'
      x-stoplight:
        id: feqc3ly5jvdq6
      description: |-
        Update service shipment. For receiver, either a store or an external workshop must be set (by its UID).

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/ServiceShipmentUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - ServiceShipment
    delete:
      summary: Delete service shipment
      operationId: delete-service-shipment
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: w924kd1hpy200
      description: |-
        Delete service shipment

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - ServiceShipment
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/logs/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Warehouse stock history
      operationId: post-store-warehouses-logs-search
      responses:
        '200':
          $ref: '#/components/responses/WarehouseStockLogListResponse'
      x-stoplight:
        id: j70j6uyl7k8ua
      tags:
        - Warehouse
      description: |-
        Get stock logs filtered by warehouse and transaction types in a defined time period for your store. When no warehouse or transaction type is set you will get logs for all transaction types for all your warehouses.

        Required permissions: WAREHOUSE_HISTORY
      x-flow-permissions: WAREHOUSE_HISTORY
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/WarehouseStockLogRequest'
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/logs/export':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a Store.
        in: path
        name: storeUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Export Warehouse stock history
      operationId: post-store-warehouses-logs-export
      responses:
        '200':
          $ref: '#/components/responses/SpreadSheetResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Tenant not found
      tags:
        - Warehouse
      description: |-
        Download spreadsheet of stock logs filtered by warehouse and transaction types in a defined time period for your store. When no warehouse or transaction type is set you will get logs for all transaction types for all your warehouses.

        Required permissions: WAREHOUSE
      x-flow-permissions: WAREHOUSE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/WarehouseStockLogRequest'
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      x-stoplight:
        id: 6ak5r1ru57qon
  '/tenants/{tenantUid}/serviceorders/shipments/items/{serviceOrderUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: Get service shipments for a service order
      responses:
        '200':
          $ref: '#/components/responses/ServiceShipmentListResponse'
      operationId: get-service-shipments-serviceOrderUid
      x-stoplight:
        id: 16il3j3kcy0cc
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Get service shipment for a service order

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      requestBody:
        content: {}
      tags:
        - ServiceShipment
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}/timeslots':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
    post:
      summary: Create a time slot for the delivery provider method
      tags:
        - Timeslots
      responses:
        '201':
          $ref: '#/components/responses/DeliveryProviderMethodTimeslotResponse'
      operationId: post-tenants-delivery-providers-methods-timeslot
      x-flow-permissions: DELIVERY_METHOD
      x-stoplight:
        id: bky952oshhkak
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      description: |-
        Create new time slot for the delivery provider method

        Required permissions: DELIVERY_METHOD
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodTimeslotCreateRequest'
    get:
      summary: List time slots for the delivery provider method
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodTimeslotListResponse'
      operationId: get-list-tenants-delivery-providers-methods-timeslots
      x-stoplight:
        id: c892bgrqndnl2
      description: List all time slots belonging to the delivery provider method
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - Timeslots
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}/timeslots/available':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
    get:
      summary: List available time slots for a given time range
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodTimeslotAvailableListResponse'
      operationId: get-list-tenants-delivery-providers-methods-timeslots-available
      description: List available time slots belonging to the delivery provider method
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - Timeslots
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - schema:
            type: string
            format: date-time
          in: query
          name: fromDateTime
          required: true
          description: The time to fetch available timeslots from
        - schema:
            type: string
            format: date-time
          in: query
          name: toDateTime
          description: The time to fetch available timeslots to
      x-stoplight:
        id: 9ib8ri51vs0pi
  '/tenants/{tenantUid}/delivery-providers/{deliveryProviderUid}/methods/{deliveryProviderMethodUid}/timeslots/{deliveryProviderMethodTimeslotUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/deliveryProviderUid'
      - $ref: '#/components/parameters/deliveryProviderMethodUid'
      - $ref: '#/components/parameters/deliveryProviderMethodTimeslotUid'
    get:
      summary: Get  time slot for the delivery provider method
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodTimeslotResponse'
      operationId: get-tenants-delivery-providers-methods-timeslot-by-uid
      x-stoplight:
        id: oodbgfutcqjs0
      description: Get time slot for the delivery provider method by deliveryProviderMethodTimeslotUid
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - Timeslots
    put:
      summary: Update  time slot for the delivery provider method
      responses:
        '200':
          $ref: '#/components/responses/DeliveryProviderMethodTimeslotResponse'
      operationId: put-tenants-delivery-providers-methods-timeslot-by-uid
      description: |-
        Update time slot for the delivery provider method by deliveryProviderMethodTimeslotUid

        Required permissions: DELIVERY_METHOD
      x-flow-permissions: DELIVERY_METHOD
      x-stoplight:
        id: 166k02if8c3db
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProviderMethodTimeslotUpdateRequest'
      tags:
        - Timeslots
    delete:
      summary: Delete time slot for the delivery provider method
      responses:
        '200':
          description: ''
      operationId: delete-tenants-delivery-providers-methods-timeslot-by-uid
      description: |-
        Delete time slot for the delivery provider method by deliveryProviderMethodTimeslotUid
            
        Required permissions: DELIVERY_METHOD
      x-flow-permissions: DELIVERY_METHOD
      x-stoplight:
        id: oo38lfj9td56o
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      tags:
        - Timeslots
  '/tenants/{tenantUid}/paymentmethods/{tenantPaymentMethodUid}/parameters':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantPaymentMethodUid'
    get:
      summary: List parameters for a tenant payment method
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodParameterListResponse'
      operationId: list-tenants-paymentmethods-parameters
      x-stoplight:
        id: vvvgt150fb0rp
      description: List parameters for a tenant payment method.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
      tags:
        - PaymentMethodParameters
    post:
      summary: Create parameter for a tenant payment method
      operationId: post-tenants-paymentmethods-parameters
      responses:
        '201':
          $ref: '#/components/responses/TenantPaymentMethodParameterResponse'
      x-stoplight:
        id: mzybz6czjh912
      description: |-
        Create a parameter for a tenant payment method.  
        `position` is used to order the fields when they are listed.  
        `key` is the ID of the parameter within the payment method.   
        `tenantPaymentMethodParameterUid` is the primary key of the table. It is assigned a unique UUID but you can assign it your own ID if needed.

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodParameterCreateRequest'
      tags:
        - PaymentMethodParameters
  '/tenants/{tenantUid}/paymentmethods/{tenantPaymentMethodUid}/parameters/{tenantPaymentMethodParameterUid}':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a tenant PaymentMethodUid.
        in: path
        name: tenantPaymentMethodUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - $ref: '#/components/parameters/tenantPaymentMethodParameterUid'
    get:
      summary: Get a parameter for a tenant payment method
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodParameterResponse'
      operationId: get-tenants-paymentmethods-parameters
      x-stoplight:
        id: 2jhuldwdd75uo
      description: Get a parameter for a tenant payment method.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - PaymentMethodParameters
    put:
      summary: Update a parameter for a tenant payment method
      description: |-
        Update a parameter for a tenant payment method.  
        `position` is used to order the fields when they are listed.  
        `key` is the ID of the parameter within the payment method.   
        `tenantPaymentMethodParameterUid` is the primary key of the table. It is assigned a unique UUID but you can assign it your own ID if needed.

        Required permissions: PAYMENT_METHOD
      operationId: put-tenants-paymentmethods-parameters
      x-flow-permissions: PAYMENT_METHOD
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodParameterResponse'
      x-stoplight:
        id: 6o122b1ebv85z
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodParameterUpdateRequest'
      tags:
        - PaymentMethodParameters
    delete:
      summary: Delete a parameter for a tenant payment method
      operationId: delete-tenants-paymentmethods-parameters
      x-flow-permissions: PAYMENT_METHOD
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: 7tgpzoqyqfpus
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Delete a parameter for a tenant payment method.

        Required permissions: PAYMENT_METHOD
      tags:
        - PaymentMethodParameters
  /metadata/locale:
    get:
      summary: List locale
      tags:
        - Config
      responses:
        '200':
          $ref: '#/components/responses/LocaleMetadataResponse'
      operationId: get-metadata-locale
      x-stoplight:
        id: kwdj130u7y06p
      description: List all available locale
  /metadata/currencies:
    get:
      summary: List currencies
      tags:
        - Config
      responses:
        '200':
          $ref: '#/components/responses/CurrencyMetadataResponse'
      operationId: get-metadata-currencies
      description: List all available currencies
      x-stoplight:
        id: ekdkktexs594c
    parameters: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    get:
      summary: List internal purchase orders for an organization
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderListResponse'
      operationId: get-internal-purchase-orders
      x-stoplight:
        id: vspsjlcnm3hj7
      description: List internal purchase orders for an organization
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/InternalPurchaseOrderSendingStoreUidQuery'
        - $ref: '#/components/parameters/InternalPurchaseOrderReceivingStoreUidQuery'
        - $ref: '#/components/parameters/InternalPurchasingOrderStatusesQuery'
        - $ref: '#/components/parameters/internalPurchaseOrderFromDateQuery'
        - $ref: '#/components/parameters/internalPurchaseOrderToDateQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      tags:
        - InternalPurchaseOrder
      summary: Create an internal purchase order
      operationId: post-internal-purchase-order
      responses:
        '201':
          $ref: '#/components/responses/InternalPurchaseOrderResponse'
      x-stoplight:
        id: kmoktj0dz9fm3
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderCreateRequest'
      description: |-
        `sendingStoreUid` is the sender of the internal purchase order.  
        `receivingStoreUid` is the receiver of the internal purchase order.  
        `creatingStoreUid` is the store that creates the internal purchase order, which can be any of the above or another store.

        If the creating store is not the sender, 
        then the sender must confirm the request before the products on the order can be sent.

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
    get:
      summary: Get internal purchase order details
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderResponse'
      operationId: get-internal-purchase-order-details
      description: |-
        Get internal purchase order details

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters: []
      x-stoplight:
        id: gaabnxsadk4yq
    put:
      tags:
        - InternalPurchaseOrder
      summary: Update an internal purchase order
      operationId: put-internal-purchase-order-details
      description: |-
        Update an internal purchase order

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      responses:
        '201':
          $ref: '#/components/responses/InternalPurchaseOrderResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderUpdateRequest'
      x-stoplight:
        id: jv4fr4n38jad0
    delete:
      tags:
        - InternalPurchaseOrder
      summary: Delete an internal purchase order
      operationId: delete-internal-purchase-order-details
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: 55661b5eex0bp
      description: |-
        Delete an internal purchase order

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}/items':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
    get:
      summary: List all items on an internal purchase order
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderItemListResponse'
      operationId: get-internal-purchase-order-items
      x-stoplight:
        id: pnvrk29locw7q
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      description: |-
        List all items on an internal purchase order

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      tags:
        - InternalPurchaseOrder
      summary: Create an order item on an internal purchase order
      operationId: post-internal-purchase-order-item
      responses:
        '201':
          $ref: '#/components/responses/InternalPurchaseOrderItemResponse'
      x-stoplight:
        id: 2pcxr82zhsv44
      description: |-
        Create an order item on an internal purchase order

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderItemCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}/items/{internalPurchaseOrderItemUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
      - $ref: '#/components/parameters/internalPurchaseOrderItemUid'
    get:
      summary: Get internal purchase order item details
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderItemResponse'
      operationId: get-internal-purchase-order-item-details
      x-stoplight:
        id: 97vmp8tensxfs
      description: |-
        Get internal purchase order item details

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      tags:
        - InternalPurchaseOrder
      summary: Update internal purchase order item details
      operationId: put-internal-purchase-order-item-details
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderItemResponse'
      x-stoplight:
        id: 2heeacdl6p49z
      description: |-
        Update internal purchase order item details

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderItemUpdateRequest'
    delete:
      tags:
        - InternalPurchaseOrder
      summary: Delete an internal purchase order item
      operationId: delete-internal-purchase-order-item-details
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: fqj3vnxnhhorb
      description: |-
        Delete an internal purchase order item

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}/items/{internalPurchaseOrderItemUid}/send':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
      - $ref: '#/components/parameters/internalPurchaseOrderItemUid'
    put:
      summary: Update an internal purchase order item with a send-quantity
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderItemResponse'
      operationId: put-internal-purchase-order-item-details-send
      x-stoplight:
        id: 3iqlnj73mo5ij
      description: |-
        Update an internal purchase order item with a send-quantity

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderItemSendRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}/items/{internalPurchaseOrderItemUid}/receive':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
      - $ref: '#/components/parameters/internalPurchaseOrderItemUid'
    put:
      summary: Update an internal purchase order item with a receive-quantity
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/InternalPurchaseOrderItemResponse'
      operationId: put-internal-purchase-order-item-details-receive
      description: |-
        Update an internal purchase order item with a receive-quantity

        Required permissions: INTERNAL_PURCHASE_ORDER
      x-flow-permissions: INTERNAL_PURCHASE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/InternalPurchaseOrderItemReceiveRequest'
      x-stoplight:
        id: hv2col2z9ombb
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/internal-purchase-orders/{internalPurchaseOrderUid}/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
      - $ref: '#/components/parameters/internalPurchaseOrderUid'
    get:
      summary: Download internal purchase order
      tags:
        - InternalPurchaseOrder
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
      operationId: get-internal-purchase-order-download
      x-stoplight:
        id: qiz3dhpzhmk1w
      description: Download internal purchase order.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/products/sku':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Get new generated SKU
      operationId: post-products-sku
      description: |-
        Get new generated SKU.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      responses:
        '201':
          $ref: '#/components/responses/GeneratedSkuResponse'
      x-stoplight:
        id: y99nxh2snhul8
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/GeneratedSkuRequest'
      tags:
        - Product
  '/tenants/{tenantUid}/currencies':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List foreign currencies
      tags:
        - Currency
      responses:
        '200':
          $ref: '#/components/responses/CurrencyListResponse'
      operationId: list-currencies
      x-stoplight:
        id: ysiwphtge45bh
      description: List foreign currencies.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
    post:
      summary: Add currency
      operationId: post-currencies
      responses:
        '201':
          $ref: '#/components/responses/CurrencyResponse'
      x-stoplight:
        id: 0j6h3rnhdr94q
      description: |-
        Add a currency with exchange rate.  
        Currency codes follow the ISO 4217 standard.  
        Exchange rates are entered as integers in cents (2 decimals).

        Required permissions: FOREIGN_CURRENCY
      x-flow-permissions: FOREIGN_CURRENCY
      requestBody:
        $ref: '#/components/requestBodies/CurrencyCreateRequest'
      tags:
        - Currency
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/currencies/{currencyUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/currencyUid'
    get:
      summary: Get currency
      tags:
        - Currency
      responses:
        '200':
          $ref: '#/components/responses/CurrencyResponse'
      operationId: get-currencies
      x-stoplight:
        id: dz33lv45ebirw
      description: Get a currency.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update currency
      operationId: put-currencies
      x-flow-permissions: FOREIGN_CURRENCY
      responses:
        '200':
          $ref: '#/components/responses/CurrencyResponse'
      x-stoplight:
        id: 2a6y8xni8var4
      tags:
        - Currency
      requestBody:
        $ref: '#/components/requestBodies/CurrencyUpdateRequest'
      description: |-
        Update a currency.

        Required permissions: FOREIGN_CURRENCY
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete currency
      operationId: delete-currencies
      responses:
        '204':
          description: No Content
      x-stoplight:
        id: yfp61t5ypf5wl
      tags:
        - Currency
      description: |-
        Delete a currency.

        Required permissions: FOREIGN_CURRENCY
      x-flow-permissions: FOREIGN_CURRENCY
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: List sales orders for a service-order
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/OrderListResponse'
      operationId: list-serviceorders-orders
      x-stoplight:
        id: kxcu141nidqf5
      description: |-
        List sales orders for a service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
    post:
      summary: Create sales order for a service-order
      tags:
        - Service
      responses:
        '201':
          $ref: '#/components/responses/OrderResponse'
      operationId: post-serviceorders-orders
      description: |-
        Create sales order for a service-order.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderSalesOrderRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/{serviceOrderUid}/reports':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/serviceOrderUid'
    get:
      summary: Get reports for service-orders
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
      operationId: get-serviceorders-reports
      description: |-
        Get reports for service-orders.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters: []
      x-stoplight:
        id: dksygdcms94rx
  '/tenants/{tenantUid}/stores/{storeUid}/serviceorders/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Search for service-orders
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/ServiceOrderListResponse'
      operationId: serviceorders-search
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Search for service orders is case insensitive and you can use partial values, 
        e.g. name 'Anna' will return both 'Anna' and 'Johanna'.
        Use the query to search for customer, service number or title from 
        only one field. When this is used, the customer and service search fields are ignored.
        The array fields work like filters.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      requestBody:
        $ref: '#/components/requestBodies/ServiceOrderSearchRequest'
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/hourlyrates':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List hourly rates
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/HourlyRateListResponse'
      operationId: list-hourlyrates
      x-stoplight:
        id: 4h0hpfeca93aj
      description: |-
        List hourly rates.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
    post:
      summary: Create hourly rate
      tags:
        - Service
      responses:
        '201':
          $ref: '#/components/responses/HourlyRateResponse'
      operationId: post-hourlyrates
      x-stoplight:
        id: 70umu51w5ndw0
      description: |-
        Create a new hourly rate.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/HourlyRateCreateRequest'
  '/tenants/{tenantUid}/hourlyrates/{hourlyRateUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/hourlyRateUid'
    get:
      summary: Get hourly rate
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/HourlyRateResponse'
      operationId: get-hourlyrates
      x-stoplight:
        id: cbgaum3u0c8xw
      description: |-
        Get hourly rate.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update hourly rate
      tags:
        - Service
      responses:
        '200':
          $ref: '#/components/responses/HourlyRateResponse'
      operationId: put-hourlyrates
      x-stoplight:
        id: awy4i68rc3pch
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/HourlyRateUpdateRequest'
      description: |-
        Update hourly rate.

        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
    delete:
      summary: Delete hourly rate
      tags:
        - Service
      responses:
        '204':
          description: No Content
      operationId: delete-hourlyrates
      description: |-
        Delete hourly rate.
            
        Required permissions: SERVICE_ORDER
      x-flow-permissions: SERVICE_ORDER
      x-stoplight:
        id: aw5zlrn548et6
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/loyalty/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search for a loyalty program membership
      responses:
        '200':
          $ref: '#/components/responses/LoyaltyMemberListResponse'
      operationId: post-customers-loyalty-search
      x-stoplight:
        id: e6ilxx3kq5bjv
      tags:
        - LoyaltyProgram
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |
        Search for (look up) a loyalty program membership. 
        The preferred and main search criteria is **mobile number**, 
        but email can be used when mobile number is not available.

        Country code must be with a plus sign, e.g. +47 for Norway.
        If country code is missing, the default country code of the tenant 
        is used.
      requestBody:
        $ref: '#/components/requestBodies/LoyaltyMemberSearchRequest'
      parameters: []
  '/tenants/{tenantUid}/customers/loyalty':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Enroll new customer to loyalty program
      tags:
        - LoyaltyProgram
      responses:
        '204':
          description: No Content
      operationId: post-customers-loyalty-enroll
      x-stoplight:
        id: d17x5e47syixc
      description: |-
        Enroll new customer to loyalty program.
        If the mobile number is not in the country of the tenant you must add the country code (e.g. +358 for Finland).
        The store is where the enroll was made from.

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/LoyaltyMemberEnrollRequest'
  '/tenants/{tenantUid}/customers/{customerUid}/loyalty':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerUid'
    post:
      summary: Enroll existing customer to loyalty program
      tags:
        - LoyaltyProgram
      responses:
        '200':
          $ref: '#/components/responses/CustomerResponse'
      operationId: post-customers-customerUid-loyalty
      x-stoplight:
        id: 55y7mrgq6xpfm
      description: |-
        Enroll existing customer to loyalty program. The store is where the enroll is made from.

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/LoyaltyMemberEnrollExistingCustomerRequest'
    get:
      summary: Get loyalty program member details for customer
      tags:
        - LoyaltyProgram
      responses:
        '200':
          $ref: '#/components/responses/CustomerExternalResponse'
      operationId: get-customers-customerUid-loyalty
      x-stoplight:
        id: mx8hi3f3llf8a
      description: Get loyalty program member details for customer.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customers/{customerUid}/loyalty/discounts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerUid'
    get:
      summary: List loyalty program discounts for customer
      tags:
        - LoyaltyProgram
      responses:
        '200':
          $ref: '#/components/responses/LoyaltyDiscountListResponse'
      operationId: get-customers-loyalty-discounts
      x-stoplight:
        id: rkh6ml2hmpw5u
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: List available loyalty program member discounts for customer.
      parameters: []
  '/tenants/{tenantUid}/customers/{customerUid}/loyalty/points':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a Customer.
        in: path
        name: customerUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    get:
      summary: Get loyalty program points for customer
      tags:
        - LoyaltyProgram
      responses:
        '200':
          $ref: '#/components/responses/CustomerLoyaltyPointResponse'
      operationId: get-customers-loyalty-points
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Get available loyalty program member points for customer.
      parameters: []
      x-stoplight:
        id: 48w4g7m76vlaz
  '/tenants/{tenantUid}/orders/{orderUid}/loyalty':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/orderUid'
    get:
      summary: Get loyalty program member balance for customer on order.
      tags:
        - LoyaltyProgram
      responses:
        '200':
          $ref: '#/components/responses/OrderLoyaltyPointResponse'
      operationId: get-orders-loyalty-points
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |
        Get loyalty program member balance for customer on order.
        - If order total > 0, the response shows balance to use as payment on order.
        - If order total on order < 0, the response shows bonus point that can be refunded on order. 
      parameters: []
      x-stoplight:
        id: nzxgpjj9lmh79
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/discounts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      summary: Add discount to order
      responses:
        '201':
          $ref: '#/components/responses/OrderDiscountResponse'
      operationId: post-orders-discounts
      x-stoplight:
        id: gu07vnec3ob1a
      description: |-
        Add discounts to an order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/OrderDiscountCreateRequest'
      tags:
        - OrderDiscount
    get:
      summary: List order discounts
      responses:
        '200':
          $ref: '#/components/responses/ListOrderDiscountResponse'
      operationId: list-orders-discounts
      x-stoplight:
        id: o93ytf89lbj5f
      description: |-
        List order discounts

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - OrderDiscount
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/discounts/{orderDiscountUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderDiscountUid'
    get:
      summary: Get order discount details
      responses:
        '200':
          $ref: '#/components/responses/OrderDiscountResponse'
      operationId: get-orders-discounts-discountUid
      x-stoplight:
        id: s9m756okjbsk8
      description: |-
        Get order discount details.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - OrderDiscount
    put:
      summary: Update order discount
      responses:
        '200':
          $ref: '#/components/responses/OrderDiscountResponse'
      operationId: put-orders-discounts-discountUid
      x-stoplight:
        id: v7dj1zmvk4u24
      description: |-
        Update order discount

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/OrderDiscountUpdateRequest'
      tags:
        - OrderDiscount
    delete:
      summary: Delete order discount
      responses:
        '204':
          description: No Content
      operationId: delete-orders-discounts-discountUid
      x-stoplight:
        id: xicyqiswf0kiv
      description: |-
        Delete order discount.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - OrderDiscount
      parameters: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/discountCode/{discountCode}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/discountCode'
    delete:
      summary: Delete all order discounts with matching discountCode
      responses:
        '204':
          description: No Content
      operationId: delete-orders-discounts-discountCode
      description: |-
        Delete all order discounts with matching discountCode

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - OrderDiscount
      x-stoplight:
        id: a74ys0chd2obw
  '/tenants/{tenantUid}/stores/{storeUid}/customers/{customerUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/customerUid'
    get:
      summary: Get customer details for a store
      tags:
        - Customer
      responses:
        '200':
          $ref: '#/components/responses/StoreCustomerDetailsResponse'
      operationId: get-store-customer-details
      x-stoplight:
        id: rtrztoahb6sha
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Return a complete customer with store specific details.
  '/tenants/{tenantUid}/organizations/{organizationUid}/reports/art-fee':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    post:
      summary: Start Art Fee report
      tags:
        - Reports
      responses:
        '201':
          $ref: '#/components/responses/ReportResponse'
      operationId: post-tenants-organizations-reports-artfee-run
      x-stoplight:
        id: 5sxkug463vxem
      description: |-
        Start Art Fee report generation for a set time period and optionally for
        given stores.

        Required permissions: REPORTING
      x-flow-permissions: REPORTING
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/GeneralReportCreateRequest'
  '/tenants/{tenantUid}/campaigns/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Search for campaigns
      description: |-
        Search for campaigns

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      tags:
        - Campaign
      requestBody:
        $ref: '#/components/requestBodies/CampaignSearchRequest'
      responses:
        '200':
          $ref: '#/components/responses/CampaignListResponse'
      operationId: search-campaigns
      x-stoplight:
        id: 839br5s8e2eu6
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/campaigns':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Create new campaign
      description: |-
        Create new campaign

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      tags:
        - Campaign
      responses:
        '201':
          $ref: '#/components/responses/CampaignResponse'
      operationId: create-campaign
      x-stoplight:
        id: ljh9og4fhfqv4
      requestBody:
        $ref: '#/components/requestBodies/CampaignCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    get:
      summary: Get list of campaigns
      tags:
        - Campaign
      responses:
        '200':
          $ref: '#/components/responses/CampaignListResponse'
      operationId: list-campaigns
      description: |-
        Get list of campaigns

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      x-stoplight:
        id: izvuhkr9l7ena
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/campaignNameQuery'
        - $ref: '#/components/parameters/campaignDisplayNameQuery'
        - $ref: '#/components/parameters/campaignCodeQuery'
        - $ref: '#/components/parameters/campaignValidFromQuery'
        - $ref: '#/components/parameters/campaignValidToQuery'
        - $ref: '#/components/parameters/campaignTypeQuery'
        - $ref: '#/components/parameters/campaignDiscountTypeQuery'
        - $ref: '#/components/parameters/campaignStoreUidQuery'
        - $ref: '#/components/parameters/campaignStatusQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/campaigns/{campaignUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/campaignUid'
    get:
      summary: Get details for a campaign
      description: |-
        Get details for a campaign

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      tags:
        - Campaign
      responses:
        '200':
          $ref: '#/components/responses/CampaignResponse'
      operationId: get-campaign-details
      parameters: []
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update an existing campaign
      tags:
        - Campaign
      responses:
        '200':
          $ref: '#/components/responses/CampaignResponse'
      operationId: update-campaign
      description: |-
        Update an existing campaign

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      requestBody:
        $ref: '#/components/requestBodies/CampaignUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete an existing campaign
      tags:
        - Campaign
      responses:
        '204':
          description: No Content
      operationId: delete-campaign
      description: |-
        Delete an existing campaign
            
        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      x-stoplight:
        id: zvvsn966sgpcl
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/campaigns/{campaignUid}/selections':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/campaignUid'
    post:
      summary: Set selections on a campaign
      tags:
        - Campaign
      responses:
        '200':
          $ref: '#/components/responses/CampaignResponse'
      operationId: set-campaign-selections
      description: |-
        Set selections on a campaign

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      x-stoplight:
        id: c518c65vbdcp1
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CampaignSelectionRequest'
  '/tenants/{tenantUid}/campaigns/{campaignUid}/products':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/campaignUid'
    get:
      summary: List products for a campaign
      description: |-
        List products for a campaign

        Required permissions: CAMPAIGN
      x-flow-permissions: CAMPAIGN
      tags:
        - Campaign
      responses:
        '200':
          $ref: '#/components/responses/CampaignProductListResponse'
      operationId: list-campaign-products
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 0j0ckn6jdsc75
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/campaignProductOnCampaignTypeQuery'
  '/tenants/{tenantUid}/stores/{storeUid}/reports/art-supplier':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Start Art Provision report
      responses:
        '200':
          $ref: '#/components/responses/ZipFileResponse'
        '204':
          description: No Content
      operationId: post-tenants-reports-artsupplier-run
      description: |-
        The Art Provision  report gives overview over each artist's sales and stock 
        for the requested time period. 
        Optionally filter on artist.

        Artists with no sales and no stock are included.

        sendEmailToSupplier = true will send email to each artist.

        Required permissions: REPORTING
      x-flow-permissions: REPORTING
      tags:
        - Reports
      requestBody:
        $ref: '#/components/requestBodies/ArtSupplierReportRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: oyyqd90dfz34p
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/deliveries/{deliveryUid}/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/deliveryUid'
    get:
      summary: Download packing list for a delivery
      tags:
        - OrderDelivery
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
      operationId: get-orders-deliveries-download
      x-stoplight:
        id: jw7ei1avz6h3z
      description: Print packing list for an order delivery.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/deliveries/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Download picking list for several deliveries
      x-stoplight:
        id: af1993911cfa5
      tags:
        - OrderDelivery
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
      operationId: download-orders-deliveries-bulk-picking-list
      description: Download picking list for several deliveries
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PostRequestCombinedDeliveriesPackingList'
  '/tenants/{tenantUid}/stores/{storeUid}/reports/suppliers/payouts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: List suppliers' commission sales payouts
      tags:
        - Reports
      responses:
        '200':
          $ref: '#/components/responses/SupplierPayoutListResponse'
      operationId: post-reports-suppliers-payouts
      x-stoplight:
        id: r6qqhlor6950u
      description: |-
        List suppliers' payouts for commission sales in a time period. 
        Optionally filter on commission sales that are paid/not paid.

        Required permissions: REPORTING
      x-flow-permissions: REPORTING
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SupplierPayoutListRequest'
  '/tenants/{tenantUid}/suppliers/payouts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    put:
      summary: Update suppliers' commission sales payouts paid date
      tags:
        - Supplier
      responses:
        '204':
          description: No Content
      operationId: put-tenants-suppliers-payouts
      x-flow-permissions: SUPPLIER
      x-stoplight:
        id: ivxo69p9fpczb
      description: |-
        Set suppliers' payouts for commission sales as paid.  
        If `paid` is true and `paidAt` is not given, today's date is set.  
        If `paid` is false `paidAt` is set to `nil`.

        Required permissions: SUPPLIER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SupplierPayoutUpdateRequest'
      parameters: []
  '/tenants/{tenantUid}/caching/entity-timestamps':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: Get entity timestamps
      tags:
        - Caching
      responses:
        '200':
          $ref: '#/components/responses/EntityTimestampResponse'
      operationId: get-entity-timestamps
      x-stoplight:
        id: 1t1revp9r8o8b
      description: |-
        Retrieve timestamps for entities to be used in caching. 
        The entities refer to database tables, 
        and the timestamp for each entity is updated whenever a record within the table 
        is created, updated, or deleted.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/settlements/{settlementUid}/payments':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/settlementUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List payments for settlement
      tags:
        - OrderSettlement
      responses:
        '200':
          $ref: '#/components/responses/PaymentListResponse'
      operationId: list-settlements-payments
      x-flow-permissions: PAYMENT
      x-stoplight:
        id: e6fkbncjqk0n4
      description: |-
        A payment belongs to an order settlement with payment method `INVOICE`.
        Normally invoices are paid via bank and the payments imported or also registered by hand.
        But if a customer pays the invoice by another method in the store (e.g. cash or card), 
        it is made as a settlement on a new order without any lines, and then shown as `paymentSettlement`.

        Required permissions: PAYMENT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Add payment for settlement
      tags:
        - OrderSettlement
      responses:
        '201':
          $ref: '#/components/responses/PaymentResponse'
      operationId: post-settlements-payments
      x-flow-permissions: PAYMENT
      x-stoplight:
        id: fb9a5dzbvd33a
      description: |-
        Add a payment for a settlement.  
        `amount` is in cents.  
        If `paidAt` is nil, it is set to `now`.

        Required permissions: PAYMENT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PaymentCreateRequest'
  '/tenants/{tenantUid}/payments/batch':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Batch add payments for a list of settlements
      tags:
        - OrderSettlement
      responses:
        '204':
          description: All payments were successfully created
      operationId: post-settlements-payments-batch
      x-stoplight:
        id: batch-payments-settlement
      description: |-
        Add multiple payments for settlements in a single request.
        storeUid, orderUid and settlementUid are required for each payment.
        `amount` is in cents for each payment.
        If `paidAt` is nil for any payment, it is set to `now`.
        Returns 204 (No Content) if all payments are successfully created.

        Required permissions: PAYMENT
      x-flow-permissions: PAYMENT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PaymentBatchRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/settlements/{settlementUid}/payment-settlements':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/settlementUid'
    post:
      summary: Create new payment-settlement
      tags:
        - OrderSettlement
      responses:
        '201':
          $ref: '#/components/responses/OrderResponse'
      operationId: post-settlements-payment-settlements
      x-stoplight:
        id: a4fsvum50q1cg
      description: |-
        A payment belongs to an order settlement with payment method `INVOICE`.
        Normally invoices are paid via bank and the payments imported or also registered by hand.
        But if a customer pays the invoice by another method in store (e.g. cash or card) 
        it is made as a settlement on a new order without any lines, and this is what we do here, 
        meaning the path parameters must refer to the order and settlement for which this is a payment.

        Required permissions: PAYMENT
      x-flow-permissions: PAYMENT
      requestBody:
        $ref: '#/components/requestBodies/OrderSettlementCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  /metadata/labels:
    get:
      summary: List labels
      tags:
        - Config
      responses:
        '200':
          $ref: '#/components/responses/LabelListResponse'
      operationId: get-metadata-labels
      x-stoplight:
        id: c6gsunyaka65y
      description: List available label formats. Label sizes are in mm.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/product-warranties':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List product warranty terms
      responses:
        '200':
          $ref: '#/components/responses/ProductWarrantyListResponse'
      operationId: list-product-warranty
      x-stoplight:
        id: w5rlfnqhqiee8
      description: List product warranty terms.
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - ProductWarranty
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Create product warranty terms
      responses:
        '201':
          $ref: '#/components/responses/ProductWarrantyResponse'
      operationId: post-product-warranty
      x-flow-permissions: WARRANTY
      x-stoplight:
        id: ghp9h33qvn0nw
      description: |-
        Create new product warranty terms.

        Required permissions: WARRANTY
      tags:
        - ProductWarranty
      requestBody:
        $ref: '#/components/requestBodies/ProductWarrantyCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/product-warranties/{productWarrantyUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productWarrantyUid'
    get:
      summary: Get product warranty terms
      tags:
        - ProductWarranty
      responses:
        '200':
          $ref: '#/components/responses/ProductWarrantyResponse'
      operationId: get-product-warranty
      x-stoplight:
        id: j3niw63qipjg3
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Get a product warranty terms details.
    put:
      summary: Update product warranty terms
      tags:
        - ProductWarranty
      responses:
        '200':
          $ref: '#/components/responses/ProductWarrantyResponse'
      operationId: put-product-warranty
      description: |-
        Update a product warranty terms.

        Required permissions: WARRANTY
      x-flow-permissions: WARRANTY
      x-stoplight:
        id: ok05oe8cwzha9
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductWarrantyUpdateRequest'
    delete:
      summary: Delete product warranty terms
      tags:
        - ProductWarranty
      responses:
        '204':
          description: No Content
      operationId: delete-product-warranty
      description: |-
        Delete a product warranty terms.
            
        Required permissions: WARRANTY
      x-flow-permissions: WARRANTY
      x-stoplight:
        id: vdorjm4tjr867
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/products/{productUid}/packages/slots':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
    get:
      summary: List product package slots
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageSlotListResponse'
      operationId: get-products-packages-slots
      x-stoplight:
        id: 77cdtfg538ah6
      description: List product package slots.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create product package slot
      tags:
        - ProductPackage
      responses:
        '201':
          $ref: '#/components/responses/ProductPackageSlotResponse'
      operationId: post-products-packages-slots
      x-stoplight:
        id: 27euv1htqbby7
      description: |-
        Create new product package slot.

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductPackageSlotCreateRequest'
  '/tenants/{tenantUid}/products/{productUid}/packages/slots/{productPackageSlotUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/productPackageSlotUid'
    get:
      summary: Get product package slot
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageSlotResponse'
      operationId: get-products-packages-slots-productPackageSlotUid
      x-stoplight:
        id: jpaj1bvrm3qa8
      description: Get product package slot
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update product package slot
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageSlotResponse'
      operationId: put-products-packages-slots-productPackageSlotUid
      x-stoplight:
        id: 56a9vwfspzet6
      description: |-
        Update product package slot

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductPackageSlotUpdateRequest'
    delete:
      summary: Delete product package slot
      tags:
        - ProductPackage
      responses:
        '204':
          description: No Content
      operationId: delete-products-packages-slots-productPackageSlotUid
      x-stoplight:
        id: n7awrhkqyq7fb
      description: |-
        Delete product package slot

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/products/{productUid}/packages/slots/{productPackageSlotUid}/components':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/productPackageSlotUid'
    get:
      summary: List product package components
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageComponentListResponse'
      operationId: get-products-packages-slots-components
      x-stoplight:
        id: 1lwx0uw99zx59
      description: List product package components
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create product package component
      tags:
        - ProductPackage
      responses:
        '201':
          $ref: '#/components/responses/ProductPackageComponentResponse'
      operationId: post-products-packages-slots-components
      x-stoplight:
        id: gugsaugjalh9e
      description: |-
        Create product package component

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductPackageComponentCreateRequest'
  '/tenants/{tenantUid}/products/{productUid}/packages/slots/{productPackageSlotUid}/components/{productPackageComponentUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/productUid'
      - $ref: '#/components/parameters/productPackageSlotUid'
      - $ref: '#/components/parameters/productPackageComponentUid'
    get:
      summary: Get product package component
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageComponentResponse'
      operationId: get-products-packages-slots-components-productPackageComponentUid
      x-stoplight:
        id: jgawpx9nwy8ic
      description: Get product package component
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update product package component
      tags:
        - ProductPackage
      responses:
        '200':
          $ref: '#/components/responses/ProductPackageComponentResponse'
      operationId: put-products-packages-slots-components-productPackageComponentUid
      x-stoplight:
        id: v76atnyj0sin2
      description: |-
        Update product package component

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      requestBody:
        $ref: '#/components/requestBodies/ProductPackageComponentUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete product package component
      tags:
        - ProductPackage
      responses:
        '204':
          description: No Content
      operationId: delete-products-packages-slots-components-productPackageComponentUid
      x-stoplight:
        id: dzev6p6mzei2h
      description: |-
        Delete product package component

        Required permissions: PRODUCT
      x-flow-permissions: PRODUCT
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/additional-notes':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    get:
      summary: List order additional notes
      tags:
        - Order
      responses:
        '200':
          $ref: '#/components/responses/OrderAdditionalNoteListResponse'
      operationId: get-orders-additional-notes
      x-stoplight:
        id: yux5lqlrbyzik
      description: |-
        List additional notes, or comments, on orders.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create order additional notes
      tags:
        - Order
      responses:
        '201':
          $ref: '#/components/responses/OrderAdditionalNoteResponse'
      operationId: post-orders-additional-notes
      x-stoplight:
        id: bzmi5c7i2sg0d
      description: |-
        Create additional notes, or comments, on orders.  
        Define wether a notification is to be sent to the customer.  
        The notification may be on email or SMS or both.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/OrderAdditionalNoteCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/additional-notes/{orderAdditionalNoteUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
      - $ref: '#/components/parameters/orderAdditionalNoteUid'
    delete:
      summary: Delete order additional notes
      tags:
        - Order
      responses:
        '204':
          description: No Content
      operationId: delete-orders-additional-notes
      x-stoplight:
        id: e4u5pr3akxh0d
      description: |-
        Delete order additional notes

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/visitors':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: List all visitor records for a list of stores
      description: List all visitor records for a list of stores
      responses:
        '200':
          $ref: '#/components/responses/StoreVisitorListResponse'
      operationId: get-tenant-store-visitors
      x-stoplight:
        id: kdz67xe7hes1k
      requestBody:
        $ref: '#/components/requestBodies/StoreVisitorRequest'
      tags:
        - Store
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/compensations':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List compensations
      tags:
        - Compensation
      responses:
        '200':
          $ref: '#/components/responses/CompensationListResponse'
      operationId: get-tenant-compensations
      x-stoplight:
        id: ih8k3vhkg53xy
      description: List compensations
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Add new Compensation
      tags:
        - Compensation
      responses:
        '201':
          $ref: '#/components/responses/CompensationResponse'
      operationId: post-tenant-compensation
      x-flow-permissions: COMPENSATION
      x-stoplight:
        id: gd1nzjasy6fb4
      description: |-
        Add new Compensation

        Required permissions: COMPENSATION
      requestBody:
        $ref: '#/components/requestBodies/CompensationCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/compensations/{compensationUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/compensationUid'
    get:
      summary: Get compensation details
      tags:
        - Compensation
      responses:
        '200':
          $ref: '#/components/responses/CompensationResponse'
      operationId: get-tenant-compensation
      description: Get compensation details
      parameters: []
      x-stoplight:
        id: 0gcstlynxnxpt
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update compensation details
      tags:
        - Compensation
      responses:
        '200':
          $ref: '#/components/responses/CompensationResponse'
      operationId: put-tenant-compensation
      x-flow-permissions: COMPENSATION
      description: |-
        Update compensation details

        Required permissions: COMPENSATION
      requestBody:
        $ref: '#/components/requestBodies/CompensationUpdateRequest'
      x-stoplight:
        id: xygy548kpwh80
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete a compensation
      tags:
        - Compensation
      responses:
        '204':
          description: No Content
      operationId: delete-tenant-compensation
      description: |-
        Delete a compensation

        Required permissions: COMPENSATION
      x-flow-permissions: COMPENSATION
      x-stoplight:
        id: 743owztq28b0v
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/compensations/{compensationUid}/reasons':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/compensationUid'
    get:
      summary: List Compensation reasons
      tags:
        - Compensation
      responses:
        '200':
          $ref: '#/components/responses/CompensationReasonListResponse'
      operationId: get-tenant-compensation-reasons
      x-stoplight:
        id: a9xtccsnerd1x
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      description: List Compensation reasons
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Add a compensation reason
      tags:
        - Compensation
      responses:
        '201':
          $ref: '#/components/responses/CompensationReasonResponse'
      operationId: post-tenant-compensation-reason
      description: |-
        Add a compensation reason

        Required permissions: COMPENSATION
      x-flow-permissions: COMPENSATION
      x-stoplight:
        id: 0j8ejdmk6zp4t
      requestBody:
        $ref: '#/components/requestBodies/CompensationReasonCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/compensations/{compensationUid}/reasons/{compensationReasonUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/compensationUid'
      - $ref: '#/components/parameters/compensationReasonUid'
    get:
      summary: Get Compensation reason details
      tags:
        - Compensation
      responses:
        '200':
          $ref: '#/components/responses/CompensationReasonResponse'
      operationId: get-tenant-compensation-reason
      parameters: []
      x-stoplight:
        id: 1ymjymjx6ndow
      description: Get Compensation reason details
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update compensation reason details
      tags:
        - Compensation
      responses:
        '201':
          $ref: '#/components/responses/CompensationReasonResponse'
      operationId: put-tenant-compensation-reason
      x-flow-permissions: COMPENSATION
      description: |-
        Update compensation reason details

        Required permissions: COMPENSATION
      requestBody:
        $ref: '#/components/requestBodies/CompensationReasonUpdateRequest'
      x-stoplight:
        id: anzu3wg5d6vqq
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      tags:
        - Compensation
      responses:
        '204':
          description: No Content
      operationId: delete-tenant-compensation-reason
      description: |-
        Delete a Compensation reason
            
        Required permissions: COMPENSATION
      x-flow-permissions: COMPENSATION
      x-stoplight:
        id: hi03lj18oxfbw
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/reports/cashcontrolreport/stores/{storeUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      description: |-
        Cash control per till and paymentmethod

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      operationId: post-tenant-reports-cashcontrolreport-store
      parameters: []
      requestBody:
        $ref: '#/components/requestBodies/CashControlReportPDFRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      summary: Cash control per till and paymentmethod
      tags:
        - AccountingReports
  '/tenants/{tenantUid}/report-urls':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List all external report urls for tenant
      tags:
        - ReportsExternal
      responses:
        '200':
          $ref: '#/components/responses/ExternalReportUrlResponse'
      operationId: get-tenant-report-urls
      x-stoplight:
        id: fe3uukgj7qbsn
      description: List all external report urls for tenant
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/report-urls':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    get:
      summary: List all external report urls for organization
      tags:
        - ReportsExternal
      responses:
        '200':
          $ref: '#/components/responses/ExternalReportUrlResponse'
      operationId: get-organization-report-urls
      description: List all external report urls for organization
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: csp3dl0xwb4i2
  '/tenants/{tenantUid}/stores/{storeUid}/report-urls':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List all external report urls for store
      tags:
        - ReportsExternal
      responses:
        '200':
          $ref: '#/components/responses/ExternalReportUrlResponse'
      operationId: get-store-report-urls
      description: List all external report urls for store
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: gf24o7awirf08
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/productGroup':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Create a new productgroup account mapping
      tags:
        - AccountingConfigs
      responses:
        '201':
          $ref: '#/components/responses/AccountingConfigsResponse'
      operationId: post-accountingConfigs-productGroup
      x-stoplight:
        id: id0oujdvgkgy5
      description: |-
        **DEPRECATED use /tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/productGroups instead**

        Add a account number to a specific product group.
        This account number will be used for all products with the specified vatcode in the specific product group and all children

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        description: Shared Request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountingConfigsProductGroupRequestSchemaDeprecated'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      deprecated: true
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/productGroups':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Create a new productgroup account mapping
      tags:
        - AccountingConfigs
      responses:
        '201':
          $ref: '#/components/responses/AccountingConfigsProductGroupResponse'
      operationId: post-accountingConfigs-productGroups
      description: |-
        Add a account number to a specific product group.
        This account number will be used for all products with the specified vatcode in the specific product group and all children

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsProductGroupRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 3lrcgjzo9fsir
    get:
      summary: List all productgroups with accounting information
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsProductGroupListResponse'
      operationId: get-tenants-stores-accountingConfigs-productGroups
      x-stoplight:
        id: ky273rngxvkb0
      description: |-
        List all product groups with account number specified

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      parameters:
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/rma-orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List all RMA orders for tenant
      tags:
        - RMA-Order
      responses:
        '200':
          $ref: '#/components/responses/RMAOrderListResponse'
      operationId: list-rma-orders
      x-stoplight:
        id: uu79eneliif8x
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        List all RMA orders for tenant

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/rmaOrderStoreUidQuery'
        - $ref: '#/components/parameters/rmaOrderSupplierUidQuery'
        - $ref: '#/components/parameters/rmaOrderFromDateQuery'
        - $ref: '#/components/parameters/rmaOrderToDateQuery'
    post:
      summary: Create new RMA order
      tags:
        - RMA-Order
      responses:
        '201':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: create-rma-order
      x-stoplight:
        id: lu6xdp83h7wvx
      description: |-
        Create new RMA request

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      requestBody:
        $ref: '#/components/requestBodies/RMAOrderCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
    get:
      summary: Get RMA order details
      x-stoplight:
        id: fb1d5bujrlw5c
      tags:
        - RMA-Order
      responses:
        '200':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: get-rma-order-details
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Get RMA order details

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
    put:
      summary: Update RMA order details
      x-stoplight:
        id: 6tpjp6xt0zl51
      tags:
        - RMA-Order
      responses:
        '200':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: update-rma-order-details
      description: |-
        Setting `status` to `COMPLETE` here only closes the RMA order without adjusting stock.

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      requestBody:
        $ref: '#/components/requestBodies/RMAOrderUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete RMA order
      x-stoplight:
        id: zthobe252zf2m
      tags:
        - RMA-Order
      responses:
        '204':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: delete-rma-order
      description: |-
        Delete RMA order

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}/items':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
    post:
      summary: Create new item on a RMA order
      tags:
        - RMA-Order
      responses:
        '201':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: create-rma-order-item
      description: |-
        Create new item on a RMA order

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      requestBody:
        $ref: '#/components/requestBodies/RMAOrderItemCreateRequest'
      x-stoplight:
        id: v9hgv4byxnf1m
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}/items/{rmaOrderItemUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
      - $ref: '#/components/parameters/rmaOrderItemUid'
    put:
      summary: Update RMA order item details
      tags:
        - RMA-Order
      responses:
        '201':
          $ref: '#/components/responses/RMAOrderResponse'
      operationId: update-rma-order-item-details
      description: |-
        Update RMA order item details

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      requestBody:
        $ref: '#/components/requestBodies/RMAOrderItemUpdateRequest'
      x-stoplight:
        id: 9wdwytnhpojuu
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete RMA order item
      tags:
        - RMA-Order
      responses:
        '204':
          description: No Content
      operationId: delete-rma-order-item
      x-stoplight:
        id: j99lfe2y44kip
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Delete RMA order item

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
    post:
      summary: Download RMA order
      tags:
        - RMA-Order
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '400':
          description: Bad Request
      operationId: download-rma-order
      x-stoplight:
        id: hfj9h9mnu1wz9
      description: Download RMA order
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}/complete':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
    post:
      summary: Finalize RMA order. Stock will be adjusted
      x-stoplight:
        id: 21970a6f7e413
      tags:
        - RMA-Order
      operationId: finalize-rma-order
      description: |-
        Finalize RMA order. Stock will be adjusted

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      responses:
        '200':
          $ref: '#/components/responses/PdfFileResponse'
  '/tenants/{tenantUid}/rma-orders/{rmaOrderUid}/email':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/rmaOrderUid'
    post:
      summary: Send email to supplier
      tags:
        - RMA-Order
      operationId: email-rma-order
      description: |-
        Send RMA order request to supplier by email

        Required permissions: RMA_ORDER
      x-flow-permissions: RMA_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/EmailNotificationRequest'
      responses:
        '200':
          $ref: '#/components/responses/FileResponse'
        '201':
          description: Created
        '400':
          description: Bad Request
  '/tenants/{tenantUid}/assets':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List assets
      tags:
        - Asset
      responses:
        '200':
          $ref: '#/components/responses/AssetListResponse'
      operationId: list-assets
      x-stoplight:
        id: gz8s5rn31hzwa
      description: List assets.
      security:
        - accessToken: []
        - authToken: []
        - accessToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/assetCategoryQuery'
    post:
      summary: Create asset
      tags:
        - Asset
      responses:
        '201':
          $ref: '#/components/responses/AssetResponse'
      operationId: post-asset
      x-stoplight:
        id: kov89zmdjblp0
      description: |-
        This endpoint lets you create the asset record. 
        To upload a file, use the `Upload asset file` endpoint 
        where the `assetUid` you get here is part of the path.

        If you want to point to an asset that you already host, 
        just add the correct URL of the asset and you are good to go.

        Required permissions: ASSET
      x-flow-permissions: ASSET
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/AssetCreateRequest'
  '/tenants/{tenantUid}/assets/{assetUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/assetUid'
    get:
      summary: Get asset details
      tags:
        - Asset
      responses:
        '200':
          $ref: '#/components/responses/AssetResponse'
      operationId: get-asset
      x-stoplight:
        id: 5kotg1qin4zp1
      description: |-
        Get asset details. The asset itself must be loaded from the host. 

        Private assets are signed URLs with expiry time. They are not included in the regular 
        asset response but you can get them from the endpoint `Get asset private URL`.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update asset details
      tags:
        - Asset
      responses:
        '200':
          $ref: '#/components/responses/AssetResponse'
      operationId: put-asset
      x-flow-permissions: ASSET
      x-stoplight:
        id: 28jbsozyge028
      description: |-
        Update asset details.

        Required permissions: ASSET
      requestBody:
        $ref: '#/components/requestBodies/AssetUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete asset
      tags:
        - Asset
      responses:
        '204':
          description: No Content
      operationId: delete-asset
      x-flow-permissions: ASSET
      x-stoplight:
        id: 4iy71lr29jwfz
      description: |-
        Delete an asset. This also removes the asset from the host.

        Required permissions: ASSET
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Upload asset file
      tags:
        - Asset
      responses:
        '201':
          $ref: '#/components/responses/AssetResponse'
      operationId: post-asset-upload
      x-stoplight:
        id: 59vvrsecprokk
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Upload file for the asset which "container" record was created on the `Add asset` endpoint.

        Required permissions: ASSET
      x-flow-permissions: ASSET
      requestBody:
        $ref: '#/components/requestBodies/AssetUploadFileRequest'
  '/tenants/{tenantUid}/assets/{assetUid}/download':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - name: assetUid
        in: path
        required: true
        schema:
          type: string
        description: Reference to an asset
    get:
      summary: Download asset file
      tags:
        - Asset
      responses:
        '303':
          description: See Other
      operationId: get-asset-download
      description: |-
        Private asset URLs have signature and expiry parameters so they cannot be accessed randomly.
            
      x-stoplight:
        id: gs9g77n25spjs
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/omnium/events':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Endpoint for Omnium events
      description: Endpoint for Omnium events
      tags:
        - Omnium
      responses:
        '204':
          description: No Content
      security:
        - integrationToken: []
      operationId: post-omnium-events
      requestBody:
        $ref: '#/components/requestBodies/GeneralObjectRequest'
      x-internal: true
  '/tenants/{tenantUid}/stores/{storeUid}/warehouses/{warehouseUid}/stocktakings/{stocktakingUid}/download':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/warehouseUid'
      - $ref: '#/components/parameters/stocktakingUid'
    get:
      summary: Download stocktaking report
      tags:
        - Stocktaking
      responses:
        '200':
          $ref: '#/components/responses/StocktakingReportResponse'
      operationId: get-complete-stocktaking-report
      description: |-
        Report for a COMPLETE Stocktaking
            
      x-stoplight:
        id: vsci87rc5qanq
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/StocktakingControlHasDiff'
        - $ref: '#/components/parameters/StocktakingControlHasRegistrations'
  '/tenants/{tenantUid}/customer-groups':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List customer groups
      tags:
        - CustomerGroup
      responses:
        '200':
          $ref: '#/components/responses/CustomerGroupListResponse'
      operationId: get-customer-groups
      x-stoplight:
        id: xemgofzx2x6wm
      description: List customer groups
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create customer group
      tags:
        - CustomerGroup
      responses:
        '201':
          $ref: '#/components/responses/CustomerGroupResponse'
      operationId: post-customer-groups
      x-stoplight:
        id: xdrvcscz0n6d8
      description: |-
        Create customer group

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CustomerGroupCreateRequest'
  '/tenants/{tenantUid}/customer-groups/{customerGroupUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerGroupUid'
    get:
      summary: Get customer group
      tags:
        - CustomerGroup
      responses:
        '200':
          $ref: '#/components/responses/CustomerGroupResponse'
      operationId: get-customer-groups-by-uid
      x-stoplight:
        id: hcwlrlxhd3ukn
      description: Get customer group for UID.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update customer group
      tags:
        - CustomerGroup
      responses:
        '200':
          $ref: '#/components/responses/CustomerGroupResponse'
      operationId: put-customer-groups
      x-stoplight:
        id: 1rcm894f45mwu
      description: |-
        Update customer group

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CustomerGroupUpdateRequest'
    delete:
      summary: Delete customer group
      tags:
        - CustomerGroup
      responses:
        '204':
          description: No Content
      operationId: delete-customer-groups
      x-stoplight:
        id: ykybncqeanyhr
      description: |-
        Delete customer group

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/customer-groups/{customerGroupUid}/customers':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - name: customerGroupUid
        in: path
        required: true
        schema:
          type: string
        description: Reference to a customer group
    get:
      summary: Get customer group with customers
      tags:
        - CustomerGroup
      responses:
        '200':
          $ref: '#/components/responses/CustomerListResponse'
      operationId: get-customer-groups-customers
      description: Get customer group with list of customers.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 53syaoer0scgf
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    put:
      summary: Add or remove customer group customers
      tags:
        - CustomerGroup
      responses:
        '204':
          description: No Content
      operationId: put-customer-groups-customers
      description: |-
        Add and/or remove customer group customers.

        Required permissions: CUSTOMER
      x-flow-permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CustomerGroupCustomersUpdateRequest'
      x-stoplight:
        id: lfjri61maijrj
  '/tenants/{tenantUid}/paymentmethods/{tenantPaymentMethodUid}/mappings':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantPaymentMethodUid'
    post:
      summary: Add a mapping to a  tenant payment method
      tags:
        - PaymentMethodMappings
      responses:
        '201':
          $ref: '#/components/responses/TenantPaymentMethodMappingResponse'
      operationId: post-tenant-payment-method-mapping
      x-stoplight:
        id: tirgjf7sci05b
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Add a mapping to a  tenant payment method

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodMappingCreateRequest'
    get:
      summary: List all mappings for a tenant payment method
      tags:
        - PaymentMethodMappings
      responses:
        '200':
          $ref: '#/components/responses/TenantPaymentMethodMappingListResponse'
      operationId: get-tenant-payment-method-mappings
      x-stoplight:
        id: wvh7bvy3nnbhj
      description: |-
        List all mappings for a tenant payment method

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/systemCodeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
  '/tenants/{tenantUid}/paymentmethods/{tenantPaymentMethodUid}/mappings/{tenantPaymentMethodMappingUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantPaymentMethodUid'
      - $ref: '#/components/parameters/tenantPaymentMethodMappingUid'
    put:
      summary: Update a mapping to a  tenant payment method
      tags:
        - PaymentMethodMappings
      responses:
        '201':
          $ref: '#/components/responses/TenantPaymentMethodMappingResponse'
      operationId: put-tenant-payment-method-mapping
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: |-
        Update a mapping to a  tenant payment method

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      requestBody:
        $ref: '#/components/requestBodies/TenantPaymentMethodMappingUpdateRequest'
      x-stoplight:
        id: 0kpwyu5stlvza
    delete:
      summary: Delete a tenantPaymentMethod mapping
      tags:
        - PaymentMethodMappings
      responses:
        '204':
          description: No Content
      operationId: delete-tenant-payment-method-mapping
      x-stoplight:
        id: ekpoa1quy14l5
      description: |-
        Delete a tenantPaymentMethod mapping

        Required permissions: PAYMENT_METHOD
      x-flow-permissions: PAYMENT_METHOD
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/delivery-options':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      summary: List all available shipping options for an order
      tags:
        - OrderDelivery
      responses:
        '200':
          $ref: '#/components/responses/DeliveryOptionResponse'
      operationId: post-delivery-options
      x-stoplight:
        id: 3l6eo0lovs9nl
      description: |-
        List all available shipping options for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/DeliveryOptionRequest'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/delivery-services':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      summary: List all available service products for an order
      tags:
        - OrderDelivery
      responses:
        '200':
          $ref: '#/components/responses/DeliveryServiceListResponse'
      operationId: post-delivery-services
      description: |-
        List all available service products for an order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/DeliveryServiceRequest'
      security:
        - accessToken: []
        - integrationToken: []
        - authToken: []
      x-stoplight:
        id: pziu2jdipy5rt
  '/tenants/{tenantUid}/reports/products-sold-not-delivered':
    post:
      tags:
        - Reports
      summary: Download Products sold and not delivered excel report
      description: Generate a report of all sold but not yet delivered products
      operationId: PostTenantProductsSoldNotDelivered
      parameters:
        - $ref: '#/components/parameters/tenantUid'
      responses:
        '200':
          $ref: '#/components/responses/SpreadSheetResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Tenant not found
      x-stoplight:
        id: s4dr7grbuyz21
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProductsSoldNotDeliveredRequest'
    parameters:
      - $ref: '#/components/parameters/tenantUid'
  '/tenants/{tenantUid}/printers':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List printers
      responses:
        '200':
          $ref: '#/components/responses/PrinterListResponse'
      operationId: get-printers
      description: |-
        List printers, optionally for a store (query parameter).
            
      x-stoplight:
        id: 1stm8lbgpe9v8
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/printerStoreUidQuery'
      tags:
        - Printer
    post:
      summary: Create printer
      responses:
        '201':
          $ref: '#/components/responses/PrinterResponse'
      operationId: post-printers
      description: |-
        Supported protocols in the printer path are `lpd`,`jd` and `flowbox`.  
        E.g. `lpd://192.168.1.4/queuename` or `jd://192.168.11.2:9100/` or `flowbox://flowboxUid/flowboxPeripheralUid`.

        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      x-stoplight:
        id: z3pkk8w6jheui
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      tags:
        - Printer
      requestBody:
        $ref: '#/components/requestBodies/PrinterCreateRequest'
  '/tenants/{tenantUid}/printers/search':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Search printers
      responses:
        '200':
          $ref: '#/components/responses/PrinterListResponse'
      operationId: post-search-printers
      description: Search printers
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - Printer
      x-stoplight:
        id: n6jqplx6ihr1w
      requestBody:
        $ref: '#/components/requestBodies/PrinterSearchRequest'
  '/tenants/{tenantUid}/printers/{printerUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/printerUid'
    get:
      summary: Get printer
      tags:
        - Printer
      responses:
        '200':
          $ref: '#/components/responses/PrinterResponse'
      operationId: get-printers-printerUid
      x-stoplight:
        id: b02g25u6e6cwe
      description: Get printer details
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update printer
      tags:
        - Printer
      responses:
        '200':
          $ref: '#/components/responses/PrinterResponse'
      operationId: put-printers
      description: |-
        The printer path must be either a `flowboxPeripheralUid` or a print path.  
        Supported protocols: `lpd` and  `jd`.  
        E.g. `lpd://192.168.1.4/queuename` or `jd://192.168.11.2:9100/` or `flowbox://flowboxPeripheralUid`.

        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      x-stoplight:
        id: 4m2qmobobgmlq
      requestBody:
        $ref: '#/components/requestBodies/PrinterUpdateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete printer
      tags:
        - Printer
      responses:
        '204':
          description: No Content
      operationId: delete-printers
      x-flow-permissions: PRINTER
      x-stoplight:
        id: v5gqs8h3ys4b3
      description: |-
        Delete printer

        Required permissions: PRINTER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    post:
      summary: Create new receipt on order
      tags:
        - Receipt
      responses:
        '201':
          $ref: '#/components/responses/ReceiptResponse'
      operationId: post-new-receipt
      x-stoplight:
        id: xbokb0r0mmjl4
      requestBody:
        $ref: '#/components/requestBodies/ReceiptCreateRequest'
      description: |-
        Create new receipt on order

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    put:
      summary: Update a receipt
      tags:
        - Receipt
      responses:
        '201':
          $ref: '#/components/responses/ReceiptResponse'
      operationId: put-receipt-details
      requestBody:
        $ref: '#/components/requestBodies/ReceiptUpdateRequest'
      description: |-
        Update a receipt

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      x-stoplight:
        id: lp2obr3vcdziq
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete a receipt
      tags:
        - Receipt
      responses:
        '204':
          description: No Content
      operationId: delete-receipt
      x-stoplight:
        id: 20sgoaz5ghkzx
      description: |-
        Delete a receipt

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    get:
      summary: Get Receipt Details
      description: |-
        Get Receipt Details

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      tags:
        - Receipt
      responses:
        '200':
          $ref: '#/components/responses/ReceiptResponse'
      operationId: get-receipt-details
      x-stoplight:
        id: mhblf2l95p3jd
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    get:
      summary: List settlements for a receipt
      tags:
        - Receipt
      responses:
        '200':
          $ref: '#/components/responses/SettlementListResponse'
      operationId: get-receipt-settlements
      x-stoplight:
        id: 3qtd5cujyyixu
      description: |-
        List settlements for a receipt

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Create new settlement
      tags:
        - Receipt
      responses:
        '201':
          $ref: '#/components/responses/SettlementResponse'
      operationId: post-receipt-settlement
      x-stoplight:
        id: u5azr498difpz
      description: |-
        Create new settlement

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/SettlementCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/print':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    post:
      summary: Print receipt
      tags:
        - Receipt
        - Print
      responses:
        '204':
          description: No Content
      operationId: post-receipt-print
      description: |-
        Print receipt

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/ReceiptPrintRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: q9qw7jbvd3ogp
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements/{settlementUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
      - $ref: '#/components/parameters/settlementUid'
    delete:
      summary: Delete a settlement
      tags:
        - Receipt
      responses:
        '204':
          description: No Content
      operationId: delete-receipt-settlement
      x-stoplight:
        id: vw8k3w8jetdsf
      description: |-
        Delete a settlement

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/forceDeleteQuery'
    get:
      summary: Get settlement details
      tags:
        - Receipt
      responses:
        '200':
          $ref: '#/components/responses/ReceiptResponse'
      operationId: get-receipt-settlement-details
      x-stoplight:
        id: 4izyttqfucorf
      description: |-
        Get settlement details

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/checkStatusQuery'
        - $ref: '#/components/parameters/includeDisplayMessagesQuery'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pre-payments':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      summary: Create a pre-payment on order
      tags:
        - PrePayment
      responses:
        '201':
          $ref: '#/components/responses/SettlementResponse'
      operationId: post-orders-pre-payments
      x-stoplight:
        id: gpuxg82hzk1m8
      description: |-
        Create a pre-payment on order.
        Returns a settlementUid, and is handled at the settlements/{settlementUid} endpoint

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SettlementCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pre-payments/refund':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/orderUid'
    post:
      summary: Create a pre-payment refund on order
      tags:
        - PrePayment
      responses:
        '201':
          $ref: '#/components/responses/SettlementResponse'
      operationId: post-orders-pre-payments-refund
      x-stoplight:
        id: gpuxg82hzk1m8
      description: |-
        Create a pre-payment refund on order.
        Returns a settlementUid, and is handled at the settlements/{settlementUid} endpoint

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SettlementRefundCreateRequest'
  '/tenants/{tenantUid}/printers/{printerUid}/test':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/printerUid'
    post:
      summary: |-
        Test printer

        Required permissions: PRINTER
      x-flow-permissions: PRINTER
      tags:
        - Printer
      responses:
        '201':
          description: Printer test page Created
        '400':
          description: Test printer 'Bad Request'
      operationId: post-tenants-tenantUid-printers-printerUid-test
      x-stoplight:
        id: q2xs215tq57sm
      description: |
        Test printer
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/organizations/{organizationUid}/settlements/search':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/organizationUid'
    post:
      summary: Search in settlements
      tags:
        - OrderSettlement
      responses:
        '200':
          $ref: '#/components/responses/SettlementListResponse'
      operationId: post-settlements-search
      x-stoplight:
        id: v0zsb10eqzu8l
      description: |-
        Retrieves a filtered list of settlements for the organization.  
        Results are sorted by `createdAt` in descending order when no sorting parameter is specified.  
        The spreadsheet response is a report containing only key settlement fields
        (pagination does not apply to spreadsheet responses).
      requestBody:
        $ref: '#/components/requestBodies/SettlementSearchRequest'
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/ehf':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    get:
      summary: Get EHF invoice status
      responses:
        '200':
          $ref: '#/components/responses/EhfInvoiceResponse'
      operationId: get-orders-ehf
      x-stoplight:
        id: 1f9eomtu779f2
      description: |-
        Check the status for an EHF invoice.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      tags:
        - Receipt
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Send EHF invoice
      responses:
        '201':
          $ref: '#/components/responses/EhfInvoiceResponse'
      operationId: post-orders-ehf
      x-stoplight:
        id: zyhqlmsluak9q
      description: |-
        An EHF invoice is normally sent automatically upon order settlement completion, 
        but here you can try an send it again if it failed the first time.
        If sending succeeds, the status is also checked.

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      tags:
        - Receipt
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  /metadata/templates:
    get:
      summary: List metadata transaction templates
      tags:
        - Templates
      responses:
        '200':
          $ref: '#/components/responses/MetadataTemplatesResponse'
      operationId: list-metadata-templates
      x-stoplight:
        id: zzs1sy6tvmcxd
      description: List metadata transaction templates
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Language
          description: 'RFC 7231 language tags format (e.g., `en-US`, `nl-NL`) to use for returning localized names'
    parameters: []
  '/tenants/{tenantUid}/templates':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Create transaction template
      tags:
        - Templates
        - Notifications
      responses:
        '201':
          $ref: '#/components/responses/TransactionTemplateResponse'
      operationId: create-tenant-template
      x-flow-permissions: TEMPLATE
      x-stoplight:
        id: rrl9kaanp8s2o
      description: |-
        Create transaction template

        Required permissions: TEMPLATE
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TransactionTemplateRequest'
    get:
      summary: List transaction templates
      tags:
        - Templates
        - Notifications
      responses:
        '200':
          $ref: '#/components/responses/TransactionTemplatesResponse'
      operationId: list-tenant-templates
      x-stoplight:
        id: r5lk6h7ztkpbh
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/templateTypeQuery'
      description: List transaction templates
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/templates/{templateUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/templateUid'
    get:
      summary: Get transaction template by templateUid
      tags:
        - Templates
        - Notifications
      responses:
        '200':
          $ref: '#/components/responses/TransactionTemplateResponse'
      operationId: get-tenant-template-templateUid
      x-stoplight:
        id: cvdc8mxik4qug
      description: Get transaction template by templateUid
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
    put:
      summary: Update transaction template by templateUid
      tags:
        - Templates
        - Notifications
      responses:
        '200':
          $ref: '#/components/responses/TransactionTemplateResponse'
      operationId: update-tenant-template-templateUid
      x-stoplight:
        id: zsyf18wms544w
      description: |-
        Update transaction template by templateUid

        Required permissions: TEMPLATE
      x-flow-permissions: TEMPLATE
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TransactionTemplateUpdateRequest'
    delete:
      summary: Delete transaction template by templateUId
      tags:
        - Templates
        - Notifications
      responses:
        '200':
          description: OK
        '404':
          description: Not Found
      operationId: delete-tenant-template-templateUid
      x-stoplight:
        id: eynpppduh6td0
      description: |-
        Delete transaction template by templateUId

        Required permissions: TEMPLATE
      x-flow-permissions: TEMPLATE
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/templates/{templateUid}/notifications-preview':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/templateUid'
    post:
      summary: Render transaction template preview
      tags:
        - Templates
        - Notifications
      responses:
        '200':
          description: OK
          content:
            text/html:
              schema:
                type: object
                properties: {}
        '400':
          description: Bad Request
      operationId: render-tenant-template-notifications-preview
      x-stoplight:
        id: 9z28pszfj8c0z
      description: |-
        Render transaction template preview

        Required permissions: TEMPLATE
      x-flow-permissions: TEMPLATE
      security:
        - authToken: []
        - accessToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/email':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    post:
      summary: Send receipt by email
      tags:
        - Receipt
        - Email
      responses:
        '204':
          description: No Content
      operationId: post-send-receipt-email
      x-stoplight:
        id: x3yo2nqhz692t
      description: |-
        Send receipt by email

        Required permissions: SALES_ORDER,RETURN_ORDER
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ReceiptEmailRequest'
  '/tenants/{tenantUid}/reports/orders':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: Order Intake report
      tags:
        - Reports
      responses:
        '200':
          $ref: '#/components/responses/OrderIntakeResponse'
      operationId: post-tenants-reports-orders
      x-stoplight:
        id: evb8g15uczo3i
      requestBody:
        $ref: '#/components/requestBodies/OrderIntakeRequest'
      description: |
        List orders with order date that matches request data.

        Based on the Accept header the response will be base64 json encoded or a raw file.
        - application/octet-stream will return a binary file
        - application/json will return a json with the file content base64 encoded.

        Required permissions: REPORTING
      x-flow-permissions: REPORTING
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/reports/reasons':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Reasons usage report
      tags:
        - Reports
        - Reasons
      responses:
        '200':
          $ref: '#/components/responses/ReasonsReportResponse'
      operationId: post-tenants-reports-reasons
      x-stoplight:
        id: 7up7p3g4tybdy
      description: |-
        Get a report of reason usage across orders for a specified time period.
              
              This report provides analytics on how reasons are being used including:
              - Discount reasons on order items
              - Return reasons on order items  
              
              The report includes usage counts and associated monetary amounts.
              
              Required permissions: REPORTING
      x-flow-permissions: REPORTING
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/ReasonsReportRequest'
  /metadata/permissions:
    get:
      summary: List available permissions
      tags:
        - Permission
      responses:
        '200':
          $ref: '#/components/responses/PermissionMetadataResponse'
      operationId: get-metadata-permissions
      x-stoplight:
        id: gpsfz1hihbevx
      description: List available permissions
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/tenant-roles':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List tenant roles
      tags:
        - Permission
      responses:
        '200':
          $ref: '#/components/responses/TenantRoleListResponse'
      operationId: get-tenant-roles
      x-stoplight:
        id: 5ppvm8kn290bz
      description: |-
        List tenant roles

        Required permissions: TENANT_ROLE
      x-flow-permissions: TENANT_ROLE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
    post:
      summary: Add new tenant role
      tags:
        - Permission
      responses:
        '201':
          $ref: '#/components/responses/TenantRoleResponse'
      operationId: post-tenant-role
      x-stoplight:
        id: 2gfsapsz8buge
      description: |-
        Add new tenant role.

        Required permissions: TENANT_ROLE
      x-flow-permissions: TENANT_ROLE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TenantRoleCreateRequest'
  '/tenants/{tenantUid}/tenant-roles/{tenantRoleUid}':
    put:
      description: |-
        Update Tenant Role

        Required permissions: TENANT_ROLE
      x-flow-permissions: TENANT_ROLE
      x-stoplight:
        id: lzet801ny2f0d
      summary: Update Tenant Role
      operationId: put-tenant-role
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/TenantRoleUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/TenantRoleResponse'
      tags:
        - Permission
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/tenantRoleUid'
    get:
      summary: |-
        Get Tenant Role

        Required permissions: TENANT_ROLE
      x-flow-permissions: TENANT_ROLE
      tags:
        - Permission
      responses:
        '200':
          $ref: '#/components/responses/TenantRoleResponse'
      operationId: get-tenant-role
      x-stoplight:
        id: bb3toj144qw9q
      description: Get Tenant Role
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete Tenant Role
      tags:
        - Permission
      responses:
        '204':
          description: No Content
      operationId: delete-tenant-role
      x-stoplight:
        id: 58biad1shw19j
      description: |-
        Delete Tenant Role

        Required permissions: TENANT_ROLE
      x-flow-permissions: TENANT_ROLE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/profrakt-delivery-methods':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List Profrakt delivery methods
      tags:
        - DeliveryMethod
        - Profrakt
      responses:
        '200':
          $ref: '#/components/responses/ProfraktDeliveryMethodsListResponse'
      operationId: list-tenant-tenantUid-profrakt-delivery-methods
      x-stoplight:
        id: mp5cedy2hbduk
      description: List Prorakt delivery methods
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      security:
        - authToken: []
        - accessToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/addresses':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List store addresses
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreAddressListResponse'
      operationId: get-stores-addresses
      x-stoplight:
        id: gqfxuvgifuv05
      description: List store additional addresses.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
    post:
      summary: Create new store address
      tags:
        - Store
      responses:
        '201':
          $ref: '#/components/responses/StoreAddressResponse'
      operationId: post-stores-addresses
      x-stoplight:
        id: c5l9va5an9sgb
      description: |-
        Create new store address

        Required permissions: STORE
      x-flow-permissions: STORE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/StoreAddressCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/addresses/{storeAddressUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeAddressUid'
    put:
      summary: Update store address
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreAddressResponse'
      operationId: put-stores-addresses
      x-stoplight:
        id: slljv1tp9jv8d
      description: |-
        Update a store address

        Required permissions: STORE
      x-flow-permissions: STORE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/StoreAddressUpdateRequest'
    delete:
      summary: Delete store address
      tags:
        - Store
      responses:
        '204':
          description: No Content
      operationId: delete-stores-addresses
      x-stoplight:
        id: 6dso5mps0h4dp
      description: |-
        Delete a store address

        Required permissions: STORE
      x-flow-permissions: STORE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    get:
      summary: Get store address
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreAddressResponse'
      operationId: get-stores-addresses-storeAddressUid
      x-stoplight:
        id: smwuk2avtoj6o
      description: |-
        Get a store address

        Required permissions: STORE
      x-flow-permissions: STORE
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/accountnumbers':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: Get all account number information
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsAccountnumberResponse'
      operationId: get-tenants-stores-accountingConfigs-accountnumbers
      description: Get all account number information
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: ww1xjqx91n81e
    put:
      summary: Update account number information
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsAccountnumberResponse'
      operationId: put-tenants-stores-accountingConfigs-accountnumber
      description: |-
        Update account number information for a store

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsAccountnumberRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: gzl7nn0mt0mab
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/treatcodes':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: Get all treat codes
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsTreatcodeResponse'
      operationId: get-tenants-stores-accountingConfigs-treatcodes
      description: Get all treat codes
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 82daun2n4yfoc
    put:
      summary: Update treat codes
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsTreatcodeResponse'
      operationId: put-tenants-stores-accountingConfigs-treatcodes
      description: |-
        Update accounting treat codes for a store

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsTreatcodeRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: md1v8rjm52wp0
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/vatTypes':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: Get all VAT types
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsVatTypeResponse'
      operationId: get-tenants-stores-accountingConfigs-vattypes
      description: Get all VAT type
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: 2k15iyj8kwgr3
    put:
      summary: Update VAT types
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsVatTypeResponse'
      operationId: put-tenants-stores-accountingConfigs-vattypes
      description: |-
        Update accounting VAT type for a store

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsVatTypeRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: oh3mvxxo6b0qz
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/customers/{customerUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/customerUid'
    get:
      summary: Customer information with accounting settings
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsCustomerResponse'
      operationId: get-tenants-stores-accountingConfigs-customer
      x-stoplight:
        id: hpugsvax40gdm
      description: Get customer information including store specific accounting information
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update customer ledger information
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsCustomerResponse'
      operationId: put-tenants-stores-accountingConfigs-customer
      x-stoplight:
        id: tqpmlwnfnqaqm
      description: |-
        Update customer with store specific accounting information.

        Required permissions: ACCOUNTING_CONFIG
      x-flow-permissions: ACCOUNTING_CONFIG
      requestBody:
        $ref: '#/components/requestBodies/AccountingConfigsCustomerRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/customers/{customerUid}/full':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/customerUid'
    get:
      summary: Customer information with accounting settings
      tags:
        - AccountingConfigs
      responses:
        '200':
          $ref: '#/components/responses/AccountingConfigsFullCustomerResponse'
      operationId: get-tenants-stores-accountingConfigs-customer-full
      description: Get full customer information including store specific accounting information
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-stoplight:
        id: w8crndlbld900
  '/tenants/{tenantUid}/stores/{storeUid}/cash-reconciliations':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List store cash reconciliations
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreCashReconciliationListResponse'
      operationId: get-stores-cash-reconciliations
      x-stoplight:
        id: 6l4o3iiawwa9m
      description: |-
        List store cash reconciliations

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/reconciliationDateFromQuery'
        - $ref: '#/components/parameters/reconciliationDateToQuery'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    post:
      summary: Create store cash reconciliation
      tags:
        - Store
      responses:
        '201':
          $ref: '#/components/responses/StoreCashReconciliationResponse'
      operationId: post-stores-cash-reconciliations
      x-stoplight:
        id: fp6qorhqgize3
      description: |-
        Create new cash reconciliation for store

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      requestBody:
        $ref: '#/components/requestBodies/StoreCashReconciliationCreateRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/cash-reconciliations/{storeCashReconciliationUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeCashReconciliationUid'
    get:
      summary: Get store cash reconciliation
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreCashReconciliationResponse'
      operationId: get-stores-cash-reconciliations-storeCashReconciliationUid
      x-stoplight:
        id: 3tuynvmerdfm4
      description: |-
        Get a store cash reconciliation by its UID.

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update store cash reconciliation
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/StoreCashReconciliationResponse'
      operationId: put-stores-cash-reconciliations-storeCashReconciliationUid
      x-stoplight:
        id: ff35flrnthl4u
      description: |-
        Update a store cash reconciliation

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/StoreCashReconciliationUpdateRequest'
    delete:
      summary: Delete store cash reconciliation
      tags:
        - Store
      responses:
        '204':
          description: No Content
      operationId: delete-stores-cash-reconciliations-storeCashReconciliationUid
      x-stoplight:
        id: vdqg0xi6tw0kq
      description: |-
        Delete a store cash reconciliation record.

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/cash-reconciliations/{storeCashReconciliationUid}/cashdeposits':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeCashReconciliationUid'
    post:
      summary: Create cash deposit
      tags:
        - Store
      responses:
        '201':
          $ref: '#/components/responses/CashDepositResponse'
      operationId: post-stores-cash-reconciliations-cashdeposits
      x-stoplight:
        id: xze4bzl6ww3g2
      description: |-
        Create cash deposit.

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      security:
        - accessToken: []
        - authToken: []
        - accessToken: []
      requestBody:
        $ref: '#/components/requestBodies/CashDepositCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/cash-reconciliations/{storeCashReconciliationUid}/cashdeposits/{cashDepositUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/storeCashReconciliationUid'
      - $ref: '#/components/parameters/cashDepositUid'
    put:
      summary: Update cash deposit
      tags:
        - Store
      responses:
        '200':
          $ref: '#/components/responses/CashDepositResponse'
      operationId: put-stores-cash-reconciliations-cashdeposits-cashDepositUid
      x-stoplight:
        id: p9x8x9w75an60
      description: |-
        Update cash deposit.

        Required permissions: TILL_OPERATION
      x-flow-permissions: TILL_OPERATION
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/CashDepositUpdateRequest'
  '/tenants/{tenantUid}/profrakt-pickup-locations':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: List of Profrakt Pickup Locations
      tags:
        - Profrakt
        - DeliveryProvider
      responses:
        '200':
          $ref: '#/components/responses/ProfraktPickupLocationListResponse'
      operationId: post-tenants-tenantUid-profrakt-pickup-locations
      x-stoplight:
        id: beh9fhhh8mi5k
      description: Get a list of Profrakt Pickup Locations
      security:
        - authToken: []
        - accessToken: []
      requestBody:
        $ref: '#/components/requestBodies/ProfraktPickupLocationRequest'
  /callbacks/postmark:
    post:
      summary: Postmark Webhook
      tags:
        - Webhooks
      responses:
        '200':
          description: Webhook received successfully
      operationId: post-callbacks-postmark
      x-stoplight:
        id: uzmbgeq1bne51
      description: 'Receives webhook callbacks from Postmark for email delivery, bounces, and spam complaints'
      requestBody:
        $ref: '#/components/requestBodies/PostmarkWebhookRequest'
  '/tenants/{tenantUid}/poster-templates':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List poster templates
      responses:
        '200':
          $ref: '#/components/responses/PosterTemplateListResponse'
      operationId: get-poster-templates
      x-stoplight:
        id: 5e1dd413qndxz
      description: |-
        List poster templates

        Required permissions: POSTER
      x-flow-permissions: POSTER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
      tags:
        - Poster
    post:
      summary: Create poster template
      tags:
        - Poster
      responses:
        '201':
          $ref: '#/components/responses/PosterTemplateResponse'
      operationId: post-poster-templates
      x-stoplight:
        id: irj5yq2fnkivt
      description: |-
        Create new poster template

        Required permissions: SUPERADMIN
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PosterTemplateCreateRequest'
  '/tenants/{tenantUid}/poster-templates/{posterTemplateUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/posterTemplateUid'
    get:
      summary: Get poster template
      tags:
        - Poster
      responses:
        '200':
          $ref: '#/components/responses/PosterTemplateResponse'
      operationId: get-poster-templates-posterTemplateUid
      x-stoplight:
        id: 528p7k7x7fi3s
      description: |-
        Get poster template

        Required permissions: POSTER
      x-flow-permissions: POSTER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    put:
      summary: Update poster template
      tags:
        - Poster
      responses:
        '200':
          $ref: '#/components/responses/PosterTemplateResponse'
      operationId: put-poster-templates-posterTemplateUid
      x-stoplight:
        id: c6c4iiu4nqjug
      description: |-
        Update poster template

        Required permissions: SUPERADMIN
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/PosterTemplateUpdateRequest'
    delete:
      summary: Delete poster template
      tags:
        - Poster
      responses:
        '204':
          description: No Content
      operationId: delete-poster-templates-posterTemplateUid
      x-stoplight:
        id: ig7zkefrdzxrs
      description: |-
        Delete poster template

        Required permissions: SUPERADMIN
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/poster-templates/{posterTemplateUid}/pdf':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/posterTemplateUid'
    post:
      summary: Create poster PDF
      tags:
        - Poster
      responses:
        '201':
          description: Created
          content:
            application/pdf:
              schema:
                type: string
                format: binary
      operationId: post-poster-templates-pdf
      x-stoplight:
        id: b6t39eimc2mpl
      description: |-
        Create poster PDF for printing

        Required permissions: POSTER
      x-flow-permissions: POSTER
      requestBody:
        $ref: '#/components/requestBodies/PosterPrintRequest'
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/poster-base-templates':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    get:
      summary: List poster base templates
      tags:
        - Poster
      responses:
        '200':
          $ref: '#/components/responses/PosterTemplateBaseListResponse'
      operationId: get-poster-base-templates
      x-stoplight:
        id: tjlrkqlhc69xg
      description: |-
        List poster base templates that can be used for adaption to actual poster templates.

        Required permissions: POSTER
      x-flow-permissions: POSTER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/pdf':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/receiptUid'
    post:
      summary: Get receipt PDF
      tags:
        - Receipt
      responses:
        '200':
          description: OK
          content:
            application/pdf:
              schema:
                type: string
                format: binary
      operationId: post-tenants-stores-receipts-pdf
      x-stoplight:
        id: 9yjliseiujboi
      description: Get receipt PDF as direct download.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/stores/{storeUid}/subscribers':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
    get:
      summary: List subscribers
      tags:
        - User
      responses:
        '200':
          $ref: '#/components/responses/SubscriberListResponse'
      operationId: get-subscribers
      x-flow-permissions: TENANT_USER
      x-stoplight:
        id: gmeo39bc5t2kh
      description: List subscribers for a store.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      parameters:
        - $ref: '#/components/parameters/pageNumberQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirectionQuery'
        - $ref: '#/components/parameters/subscriberSubscriptionTypeQuery'
        - $ref: '#/components/parameters/tenantUserUidsQuery'
    post:
      summary: Create subscriber
      tags:
        - User
      responses:
        '201':
          $ref: '#/components/responses/SubscriberResponse'
      operationId: post-subscribers
      x-flow-permissions: TENANT_USER
      x-stoplight:
        id: htxaddy5y1908
      description: Create new subscriber.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/SubscriberCreateRequest'
  '/tenants/{tenantUid}/stores/{storeUid}/subscribers/{subscriberUid}':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/storeUid'
      - $ref: '#/components/parameters/subscriberUid'
    get:
      summary: Get subscriber
      x-flow-permissions: TENANT_USER
      tags:
        - User
      responses:
        '200':
          $ref: '#/components/responses/SubscriberResponse'
      operationId: get-subscribers-subscriberUid
      x-stoplight:
        id: p7u80az4rridv
      description: Get a subscriber.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
    delete:
      summary: Delete subscriber
      x-flow-permissions: TENANT_USER
      tags:
        - User
      responses:
        '204':
          description: No Content
      operationId: delete-subscribers-subscriberUid
      x-stoplight:
        id: cdimtnxv479cw
      description: Delete a subscriber.
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
  '/tenants/{tenantUid}/ai':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
    post:
      summary: AI chat
      x-flow-permissions: AI_CHAT
      tags:
        - AI
      responses:
        '200':
          $ref: '#/components/responses/AiResponse'
      operationId: post-ai
      x-stoplight:
        id: 07ovgaczic9cw
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      description: Ask AI assistant.
      requestBody:
        $ref: '#/components/requestBodies/AiRequest'
  '/tenants/{tenantUid}/orders/search/counts':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Get counts of orders
      tags:
        - Order
      responses:
        '200':
          $ref: '#/components/responses/OrdersCountResponse'
      operationId: post-tenants-tenantUid-orders-search-counts
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      x-stoplight:
        id: 1mbu0p72f8yrn
      description: |
        Get counts of orders. Required permissions: SALES_ORDER,RETURN_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      requestBody:
        $ref: '#/components/requestBodies/OrdersCountRequest'
  /internal/flowit/stores:
    get:
      summary: List all stores with information
      tags:
        - Internal
      responses:
        '200':
          $ref: '#/components/responses/InternalFlowitStoresResponse'
      operationId: get-internal-flowit-stores
      x-stoplight:
        id: 6y0nfbabek5xi
      description: |-
        List all stores. 
        Can also get only stores changed since a specific date
      security:
        - internalKey: []
      parameters:
        - $ref: '#/components/parameters/changedSinceQuery'
        - $ref: '#/components/parameters/pageSizeQuery'
        - $ref: '#/components/parameters/pageNumberQuery'
      x-internal: true
    parameters: []
  /internal/flowit/sms:
    get:
      summary: List SMS usage for a given period per store
      tags:
        - Internal
      responses:
        '200':
          $ref: '#/components/responses/InternalFlowitSmsCountResponse'
      operationId: get-internal-flowit-sms
      x-stoplight:
        id: 5c6epj8a7mgme
      description: List SMS usage for a given period.
      security:
        - internalKey: []
      parameters:
        - $ref: '#/components/parameters/fromDateRequiredQuery'
        - $ref: '#/components/parameters/toDateRequiredQuery'
      x-internal: true
    parameters: []
  '/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/verify':
    parameters:
      - description: Reference to a tenant.
        in: path
        name: tenantUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to a Store.
        in: path
        name: storeUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
      - description: Reference to an Order.
        in: path
        name: orderUid
        required: true
        schema:
          $ref: '#/components/schemas/UID'
    post:
      summary: Verify Order Status
      tags:
        - Order
      responses:
        '200':
          $ref: '#/components/responses/OrderStatusResponse'
      operationId: post-tenants-tenantUid-stores-storeUid-orders-orderUid-verify
      x-stoplight:
        id: iktgjciv2iche
      description: |-
        Use this endpoint to verify the status of an order.

        Returns status per order item and delivery (severity and message). 
        Optionally specify productLineUids to verify only selected order lines; omit or send an empty array to verify the entire order.

        Required permissions: SALES_ORDER,RETURN_ORDER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-flow-permissions: 'SALES_ORDER,RETURN_ORDER'
      requestBody:
        $ref: '#/components/requestBodies/VerifyOrderStatusRequest'
  '/tenants/{tenantUid}/customers/{customerUid}/merge':
    parameters:
      - $ref: '#/components/parameters/tenantUid'
      - $ref: '#/components/parameters/customerUid'
    post:
      summary: Merge duplicate customer into this customer
      tags:
        - Customer
      responses:
        '200':
          $ref: '#/components/responses/CustomerResponse'
        '400':
          $ref: '#/components/responses/GenericErrorResponse'
        '404':
          $ref: '#/components/responses/GenericErrorResponse'
      operationId: post-tenants-tenantUid-customers-customerUid-merge
      x-stoplight:
        id: xum87qizc56i5
      description: |-
        Merge the duplicate customer in the request body (`mergeFromCustomerUid`) into this customer (`customerUid` in the path). The path customer is kept; orders and other data tied to the duplicate are moved to it, then the duplicate is deleted.

        Required permissions: CUSTOMER
      security:
        - accessToken: []
        - authToken: []
        - integrationToken: []
      x-flow-permissions: CUSTOMER
      requestBody:
        $ref: '#/components/requestBodies/CustomerMergeRequest'
servers:
  - description: Flow Retail Production
    url: 'https://api.flowretail.com/v2'
  - description: Flow Retail Stage
    url: 'https://api.stage.flowretail.com/v2'
tags:
  - name: Account
    description: Account
  - name: AccountingConfigs
    description: AccountingConfigs
  - name: AccountingReports
    description: AccountingReports
  - name: AI
    description: AI
  - name: Asset
    description: Asset
  - name: Caching
    description: Caching
  - name: Campaign
    description: Campaign
  - name: Categories
    description: Categories
  - name: Compensation
    description: Compensation
  - name: Config
    description: Config
  - name: Currency
    description: Currency
  - name: CompanyRegistry
    description: Company Registry
  - name: Customer
    description: Customer
  - name: CustomerAddress
    description: CustomerAddress
  - name: CustomerConsent
    description: CustomerConsent
  - name: CustomerContact
    description: CustomerContact
  - name: CustomerGroup
    description: CustomerGroup
  - name: Device
    description: Device
  - name: Email
    description: Email
  - name: Extensions
    description: Extensions
  - name: Flowbox
    description: Flowbox
  - name: GDPR
    description: GDPR
  - name: Giftcard
    description: Giftcard
  - name: Handling
    description: Handling
  - name: Import
    description: Import
  - name: Internal
    description: Internal
  - name: InternalPurchaseOrder
    description: InternalPurchaseOrder
  - name: LoyaltyProgram
    description: LoyaltyProgram
  - name: Metadata
    description: Metadata
  - name: Notifications
    description: Notifications
  - name: Omnium
    description: Omnium
  - name: Order
    description: Order
  - name: OrderDelivery
    description: OrderDelivery
  - name: DeliveryProvider
    description: DeliveryProvider
  - name: DeliveryMethod
    description: DeliveryMethod
  - name: OrderDiscount
    description: OrderDiscount
  - name: OrderHandling
    description: OrderHandling
  - name: OrderSettlement
    description: OrderSettlement
  - name: Organization
    description: Organization
  - name: PaymentMethod
    description: PaymentMethod
  - name: PaymentMethodMappings
    description: PaymentMethodMappings
  - name: PaymentMethodParameters
    description: PaymentMethodParameters
  - name: Permission
    description: Permission
  - name: Poster
    description: Poster
  - name: PrePayment
    description: PrePayment
  - name: Prices
    description: Prices
  - name: Print
    description: Print
  - name: Printer
    description: Printer
  - name: StorePrinter
    description: StorePrinter
  - name: Product
    description: Product
  - name: ProductGroup
    description: ProductGroup
  - name: ProductMedia
    description: ProductMedia
  - name: ProductPackage
    description: ProductPackage
  - name: ProductProperties
    description: ProductProperties
  - name: ProductWarranty
    description: ProductWarranty
  - name: Profrakt
    description: Profrakt
  - name: Properties
    description: Properties
  - name: Purchase
    description: Purchase
  - name: Reasons
    description: Reasons
  - name: Receipt
    description: Receipt
  - name: Receivement
    description: Receivement
  - name: Reports
    description: Reports
  - name: ReportsExternal
    description: ReportsExternal
  - name: RMA-Order
    description: RMA-Order
  - name: SAFTReport
    description: SAFTReport
  - name: Service
    description: Service
  - name: ServiceShipment
    description: ServiceShipment
  - name: SOA
    description: SOA
  - name: StockInfo
    description: StockInfo
  - name: Stocktaking
    description: Stocktaking
  - name: Store
    description: Store
  - name: Supplier
    description: Supplier
  - name: Templates
    description: Templates
  - name: Tenant
    description: Tenant
  - name: Till
    description: Till
  - name: Timeslots
    description: Timeslots
  - name: User
    description: User
  - name: Warehouse
    description: Warehouse
  - name: Webhooks
    description: Webhooks
  - name: Test
    description: Test
  - name: Label
    description: Label
  - name: Location
    description: Location
  - name: Pickup
    description: Pickup
