Virto Commerce Quotes API

Quoter enables business users to execute quote requests online. Once initiated, an online conversation takes place with internal users who interact with the business user's request. The internal user can set prices for quantity breaks or discounts. The quote is then made available to the business user online. The business user can accept the quote and place the order, continue the conversation, or reject the quote.

Operations 10

GET /api/quote/requests/{id} #
POST /api/quote/requests #
PUT /api/quote/requests #
DELETE /api/quote/requests #
PUT /api/quote/requests/recalculate #
GET /api/quote/requests/{id}/shipmentmethods #
POST /api/quote/requests/{id}/order #
PUT /api/quote/requests/{id}/status #
GET /api/quote/requests/attachments/options #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/virto-commerce-quotes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

virto-commerce-quotes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VirtoCommerce.Cart Catalog Quotes API
  version: v1
  description: Easily manage your products, categories, variations, and properties
servers:
- url: https://virtostart-demo-admin.govirto.com/api
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Quotes
  description: Quoter enables business users to execute quote requests online. Once initiated, an online conversation takes place with internal users who interact with the business user's request. The internal user can set prices for quantity breaks or discounts. The quote is then made available to the business user online. The business user can accept the quote and place the order, continue the conversation, or reject the quote.
paths:
  /api/quote/requests/search:
    post:
      tags:
      - Quotes
      operationId: QuoteModule_Search
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequestSearchCriteria'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequestSearchCriteria'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequestSearchCriteria'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/QuoteRequestSearchResult'
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestSearchResult'
            text/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestSearchResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
      - api_key:
        - quote:read
      - api_key_header:
        - quote:read
      - http-signature:
        - quote:read
      - basic:
        - quote:read
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/{id}:
    get:
      tags:
      - Quotes
      operationId: QuoteModule_GetById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Not Found
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            text/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
      - api_key:
        - quote:read
      - api_key_header:
        - quote:read
      - http-signature:
        - quote:read
      - basic:
        - quote:read
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests:
    post:
      tags:
      - Quotes
      operationId: QuoteModule_Create
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            text/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
        - quote:create
      - api_key:
        - quote:read
        - quote:create
      - api_key_header:
        - quote:read
        - quote:create
      - http-signature:
        - quote:read
        - quote:create
      - basic:
        - quote:read
        - quote:create
      x-virtocommerce-module-id: VirtoCommerce.Quote
    put:
      tags:
      - Quotes
      operationId: QuoteModule_Update
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
        - quote:update
      - api_key:
        - quote:read
        - quote:update
      - api_key_header:
        - quote:read
        - quote:update
      - http-signature:
        - quote:read
        - quote:update
      - basic:
        - quote:read
        - quote:update
      x-virtocommerce-module-id: VirtoCommerce.Quote
    delete:
      tags:
      - Quotes
      operationId: QuoteModule_Delete
      parameters:
      - name: ids
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
        - quote:delete
      - api_key:
        - quote:read
        - quote:delete
      - api_key_header:
        - quote:read
        - quote:delete
      - http-signature:
        - quote:read
        - quote:delete
      - basic:
        - quote:read
        - quote:delete
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/recalculate:
    put:
      tags:
      - Quotes
      operationId: QuoteModule_CalculateTotals
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/QuoteRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
            text/json:
              schema:
                $ref: '#/components/schemas/QuoteRequest'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
      - api_key:
        - quote:read
      - api_key_header:
        - quote:read
      - http-signature:
        - quote:read
      - basic:
        - quote:read
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/{id}/shipmentmethods:
    get:
      tags:
      - Quotes
      operationId: QuoteModule_GetShipmentMethods
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentMethod'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentMethod'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ShipmentMethod'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
      - api_key:
        - quote:read
      - api_key_header:
        - quote:read
      - http-signature:
        - quote:read
      - basic:
        - quote:read
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/{id}/order:
    post:
      tags:
      - Quotes
      operationId: QuoteModule_CreateOrderFromQuote
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/CustomerOrder'
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerOrder'
            text/json:
              schema:
                $ref: '#/components/schemas/CustomerOrder'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
        - order:create
      - api_key:
        - quote:read
        - order:create
      - api_key_header:
        - quote:read
        - order:create
      - http-signature:
        - quote:read
        - order:create
      - basic:
        - quote:read
        - order:create
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/{id}/status:
    put:
      tags:
      - Quotes
      operationId: QuoteModule_UpdateStatus
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: status
        in: query
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
        - quote:update
      - api_key:
        - quote:read
        - quote:update
      - api_key_header:
        - quote:read
        - quote:update
      - http-signature:
        - quote:read
        - quote:update
      - basic:
        - quote:read
        - quote:update
      x-virtocommerce-module-id: VirtoCommerce.Quote
  /api/quote/requests/attachments/options:
    get:
      tags:
      - Quotes
      operationId: QuoteModule_GetAttachmentOptions
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/FileUploadScopeOptions'
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadScopeOptions'
            text/json:
              schema:
                $ref: '#/components/schemas/FileUploadScopeOptions'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - quote:read
      - api_key:
        - quote:read
      - api_key_header:
        - quote:read
      - http-signature:
        - quote:read
      - basic:
        - quote:read
      x-virtocommerce-module-id: VirtoCommerce.Quote
components:
  schemas:
    QuoteConfigurationItemFile:
      type: object
      properties:
        name:
          type:
          - string
          - 'null'
        url:
          type:
          - string
          - 'null'
        contentType:
          type:
          - string
          - 'null'
        size:
          type: integer
          format: int64
        configurationItemId:
          type:
          - string
          - 'null'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    ProductAssociation:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: Association type (Accessories, Up-Sales, Cross-Sales, Related etc)
        priority:
          type: integer
          format: int32
        quantity:
          type:
          - integer
          - 'null'
          format: int32
        itemId:
          type:
          - string
          - 'null'
          description: Is a primary key of associating object
        associatedObjectId:
          type:
          - string
          - 'null'
          description: 'Each link element can have an associated object like Product, Category, etc.

            Is a primary key of associated object'
        associatedObjectType:
          type:
          - string
          - 'null'
          description: 'Associated object type : ''product'', ''category'' etc'
        outerId:
          type:
          - string
          - 'null'
          description: ''
        associatedObjectName:
          type:
          - string
          - 'null'
          description: Display name for associated object
          readOnly: true
        associatedObjectImg:
          type:
          - string
          - 'null'
          description: Associated object image URL
          readOnly: true
        tags:
          type:
          - array
          - 'null'
          items:
            type: string
        imgSrc:
          type:
          - string
          - 'null'
          readOnly: true
        images:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Image'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    OrderLineItem:
      type: object
      properties:
        customerOrderId:
          type:
          - string
          - 'null'
          description: 'Not mapped for updates: updates to this property are ignored by CRUD services.'
          readOnly: true
        priceId:
          type:
          - string
          - 'null'
          description: Price id
        currency:
          type:
          - string
          - 'null'
        price:
          type: number
          description: unit price without discount and tax
          format: double
        priceWithTax:
          type: number
          format: double
        listTotal:
          type: number
          format: double
        listTotalWithTax:
          type: number
          format: double
        placedPrice:
          type: number
          description: Resulting price with discount for one unit
          format: double
        placedPriceWithTax:
          type: number
          format: double
        extendedPrice:
          type: number
          format: double
        extendedPriceWithTax:
          type: number
          format: double
        discountAmount:
          type: number
          description: Gets the value of the single qty line item discount amount
          format: double
        isDiscountAmountRounded:
          type: boolean
          description: 'Indicates whether the discount amount per item was rounded according to the currency settings.

            If false, DiscountAmount and PlacedPrice should not be visible to the customer, as these values may be incorrect;

            in this case, DiscountTotal and ExtendedPrice should be used.'
        discountAmountWithTax:
          type: number
          format: double
        discountTotal:
          type: number
          format: double
        discountTotalWithTax:
          type: number
          format: double
        fee:
          type: number
          format: double
        feeWithTax:
          type: number
          format: double
        taxType:
          type:
          - string
          - 'null'
          description: Tax category or type
        taxTotal:
          type: number
          format: double
        taxPercentRate:
          type: number
          format: double
        reserveQuantity:
          type: integer
          description: Reserve quantity
          format: int32
        quantity:
          type: integer
          format: int32
        productId:
          type:
          - string
          - 'null'
        sku:
          type:
          - string
          - 'null'
        productType:
          type:
          - string
          - 'null'
        catalogId:
          type:
          - string
          - 'null'
        categoryId:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        productOuterId:
          type:
          - string
          - 'null'
        comment:
          type:
          - string
          - 'null'
        status:
          type:
          - string
          - 'null'
        imageUrl:
          type:
          - string
          - 'null'
        isGift:
          type:
          - boolean
          - 'null'
        shippingMethodCode:
          type:
          - string
          - 'null'
        fulfillmentLocationCode:
          type:
          - string
          - 'null'
        fulfillmentCenterId:
          type:
          - string
          - 'null'
        fulfillmentCenterName:
          type:
          - string
          - 'null'
        outerId:
          type:
          - string
          - 'null'
        feeDetails:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/FeeDetail'
        vendorId:
          type:
          - string
          - 'null'
        isConfigured:
          type: boolean
        weightUnit:
          type:
          - string
          - 'null'
        weight:
          type:
          - number
          - 'null'
          format: double
        measureUnit:
          type:
          - string
          - 'null'
        height:
          type:
          - number
          - 'null'
          format: double
        length:
          type:
          - number
          - 'null'
          format: double
        width:
          type:
          - number
          - 'null'
          format: double
        isCancelled:
          type: boolean
        cancelledDate:
          type:
          - string
          - 'null'
          format: date-time
        cancelReason:
          type:
          - string
          - 'null'
        objectType:
          type:
          - string
          - 'null'
          readOnly: true
        dynamicProperties:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DynamicObjectProperty'
        discounts:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Discount'
        taxDetails:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/TaxDetail'
        configurationItems:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OrderConfigurationItem'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    PaymentMethodGroupType:
      enum:
      - Paypal
      - BankCard
      - Alternative
      - Manual
      type: string
    AddressType:
      enum:
      - Undefined
      - Billing
      - Shipping
      - BillingAndShipping
      - Pickup
      type: string
    ShippingMethod:
      type: object
      properties:
        code:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        logoUrl:
          type:
          - string
          - 'null'
        isActive:
          type: boolean
        priority:
          type: integer
          format: int32
        taxType:
          type:
          - string
          - 'null'
        storeId:
          type:
          - string
          - 'null'
        settings:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ObjectSettingEntry'
        typeName:
          type:
          - string
          - 'null'
          readOnly: true
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    PropertyValueType:
      enum:
      - ShortText
      - LongText
      - Number
      - DateTime
      - Boolean
      - Integer
      - GeoPoint
      - Html
      - Measure
      - Color
      type: string
    OutlineItem:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
          description: Object id
        seoObjectType:
          type:
          - string
          - 'null'
          description: Object type
        seoInfos:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/SeoInfo'
          description: All SEO records for the object
        name:
          type:
          - string
          - 'null'
          description: The name of current item
        localizedName:
          allOf:
          - $ref: '#/components/schemas/LocalizedString'
        hasVirtualParent:
          type: boolean
          description: True when this object is linked to the virtual parent.
      additionalProperties: false
      description: 'Represents one outline element: catalog, category or product.'
    CancelledState:
      enum:
      - Undefined
      - Requested
      - Completed
      type: string
    OperationLog:
      type: object
      properties:
        objectType:
          type:
          - string
          - 'null'
        objectId:
          type:
          - string
          - 'null'
        operationType:
          allOf:
          - $ref: '#/components/schemas/EntryState'
        detail:
          type:
          - string
          - 'null'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    OrderShipmentItem:
      type: object
      properties:
        lineItemId:
          type:
          - string
          - 'null'
        lineItem:
          allOf:
          - $ref: '#/components/schemas/OrderLineItem'
        barCode:
          type:
          - string
          - 'null'
        quantity:
          type: integer
          format: int32
        outerId:
          type:
          - string
          - 'null'
        status:
          type:
          - string
          - 'null'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    PaymentStatus:
      enum:
      - New
      - Pending
      - Authorized
      - Paid
      - PartiallyRefunded
      - Refunded
      - Voided
      - Custom
      - Cancelled
      - Declined
      - Error
      type: string
    Outline:
      type: object
      properties:
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/OutlineItem'
          description: Outline parts
      additionalProperties: false
      description: 'Represents the path from the catalog to one of the child objects (product or category):

        catalog/parent-category1/.../parent-categoryN/object'
    EditorialReview:
      type: object
      properties:
        content:
          type:
          - string
          - 'null'
        reviewType:
          type:
          - string
          - 'null'
        languageCode:
          type:
          - string
          - 'null'
        isInherited:
          type: boolean
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    DynamicPropertyName:
      type: object
      properties:
        locale:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
      additionalProperties: false
    RefundReasonCode:
      enum:
      - Duplicate
      - Fraudulent
      - RequestedByCustomer
      - Other
      type: string
    PropertyValue:
      type: object
      properties:
        propertyName:
          type:
          - string
          - 'null'
        propertyId:
          type:
          - string
          - 'null'
        languageCode:
          type:
          - string
          - 'null'
        alias:
          type:
          - string
          - 'null'
        displayOrder:
          type:
          - integer
          - 'null'
          format: int32
        valueType:
          allOf:
          - $ref: '#/components/schemas/PropertyValueType'
        valueId:
          type:
          - string
          - 'null'
        value:
          type:
          - object
          - 'null'
        propertyMultivalue:
          type: boolean
          readOnly: true
        outerId:
          type:
          - string
          - 'null'
        unitOfMeasureId:
          type:
          - string
          - 'null'
        colorCode:
          type:
          - string
          - 'null'
        isInherited:
          type: boolean
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    OrderAddress:
      type: object
      properties:
        addressType:
          allOf:
          - $ref: '#/components/schemas/AddressType'
        key:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        organization:
          type:
          - string
          - 'null'
        countryCode:
          type:
          - string
          - 'null'
        countryName:
          type:
          - string
          - 'null'
        city:
          type:
          - string
          - 'null'
        postalCode:
          type:
          - string
          - 'null'
        zip:
          type:
          - string
          - 'null'
        line1:
          type:
          - string
          - 'null'
        line2:
          type:
          - string
          - 'null'
        regionId:
          type:
          - string
          - 'null'
        regionName:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        middleName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        phone:
          type:
          - string
          - 'null'
        email:
          type:
          - string
          - 'null'
        outerId:
          type:
          - string
          - 'null'
        isDefault:
          type: boolean
        description:
          type:
          - string
          - 'null'
      additionalProperties: false
    FileUploadScopeOptions:
      required:
      - allowedExtensions
      - maxFileSize
      - scope
      type: object
      properties:
        scope:
          minLength: 1
          type: string
        maxFileSize:
          type: integer
          format: int64
        allowedExtensions:
          type: array
          items:
            type: string
        allowAnonymousUpload:
          type: boolean
      additionalProperties: false
    DynamicObjectProperty:
      type: object
      properties:
        objectId:
          type:
          - string
          - 'null'
        values:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DynamicPropertyObjectValue'
        name:
          type:
          - string
          - 'null'
        description:
          type:
          - string
          - 'null'
        objectType:
          type:
          - string
          - 'null'
        isArray:
          type: boolean
        isDictionary:
          type: boolean
        isMultilingual:
          type: boolean
        isRequired:
          type: boolean
        displayOrder:
          type:
          - integer
          - 'null'
          format: int32
        valueType:
          allOf:
          - $ref: '#/components/schemas/DynamicPropertyValueType'
        displayNames:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/DynamicPropertyName'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        modifiedBy:
          maxLength: 64
          minLength: 0
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
      additionalProperties: false
    CustomerOrder:
      type: object
      properties:
        rowVersion:
          type:
          - string
          - 'null'
          format: byte
        customerId:
          type:
          - string
          - 'null'
        customerName:
          type:
          - string
          - 'null'
        channelId:
          type:
          - string
          - 'null'
        storeId:
          type:
          - string
          - 'null'
        storeName:
          type:
          - string
          - 'null'
        organizationId:
          type:
          - string
          - 'null'
        organizationName:
          type:
          - string
          - 'null'
        employeeId:
          type:
          - string
          - 'null'
        employeeName:
          type:
          - string
          - 'null'
        shoppingCartId:
          type:
          - string
          - 'null'
          description: The base shopping cart ID the order was created with
        isPrototype:
          type: boolean
          description: This checkbox determi

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virto-commerce/refs/heads/main/openapi/virto-commerce-quotes-api-openapi.yml