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.

OpenAPI Specification

virto-commerce-quotes-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: VirtoCommerce.Cart Catalog Quotes API
  version: v1
  description: Easily manage your products, categories, variations, and properties
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:
    PropertyType:
      enum:
      - Product
      - Variation
      - Category
      - Catalog
      type: string
    QuoteConfigurationItemFile:
      type: object
      properties:
        name:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        contentType:
          type: string
          nullable: true
        size:
          type: integer
          format: int64
        configurationItemId:
          type: string
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    Capture:
      type: object
      properties:
        objectType:
          type: string
          nullable: true
        amount:
          type: number
          format: double
        vendorId:
          type: string
          nullable: true
        transactionId:
          type: string
          nullable: true
        customerOrderId:
          type: string
          nullable: true
        paymentId:
          type: string
          nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/CaptureItem'
          nullable: true
        closeTransaction:
          type: boolean
        operationType:
          type: string
          nullable: true
        parentOperationId:
          type: string
          nullable: true
        number:
          type: string
          nullable: true
        isApproved:
          type: boolean
        status:
          type: string
          nullable: true
        comment:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        sum:
          type: number
          format: double
        outerId:
          type: string
          nullable: true
        cancelledState:
          allOf:
          - $ref: '#/components/schemas/CancelledState'
          description: For system use to handle canellation flow
        isCancelled:
          type: boolean
          description: Used by payment provides to indicate that cancellation operation has completed
        cancelledDate:
          type: string
          format: date-time
          nullable: true
        cancelReason:
          type: string
          nullable: true
        dynamicProperties:
          type: array
          items:
            $ref: '#/components/schemas/DynamicObjectProperty'
          nullable: true
        operationsLog:
          type: array
          items:
            $ref: '#/components/schemas/OperationLog'
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    PropertyValueType:
      enum:
      - ShortText
      - LongText
      - Number
      - DateTime
      - Boolean
      - Integer
      - GeoPoint
      - Html
      - Measure
      - Color
      type: string
    SeoInfo:
      type: object
      properties:
        name:
          type: string
          nullable: true
        semanticUrl:
          type: string
          nullable: true
        outline:
          type: string
          nullable: true
        pageTitle:
          type: string
          nullable: true
        metaDescription:
          type: string
          nullable: true
        imageAltDescription:
          type: string
          nullable: true
        metaKeywords:
          type: string
          nullable: true
        storeId:
          type: string
          nullable: true
        organizationId:
          type: string
          nullable: true
        objectId:
          type: string
          nullable: true
        objectType:
          type: string
          nullable: true
        isActive:
          type: boolean
        languageCode:
          type: string
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    ShipmentPackage:
      type: object
      properties:
        barCode:
          type: string
          nullable: true
        packageType:
          type: string
          nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderShipmentItem'
          nullable: true
        weightUnit:
          type: string
          nullable: true
        weight:
          type: number
          format: double
          nullable: true
        measureUnit:
          type: string
          nullable: true
        height:
          type: number
          format: double
          nullable: true
        length:
          type: number
          format: double
          nullable: true
        width:
          type: number
          format: double
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    CancelledState:
      enum:
      - Undefined
      - Requested
      - Completed
      type: string
    DynamicPropertyValueType:
      enum:
      - Undefined
      - ShortText
      - LongText
      - Integer
      - Decimal
      - DateTime
      - Boolean
      - Html
      - Image
      type: string
    OrderConfigurationItem:
      type: object
      properties:
        lineItemId:
          type: string
          nullable: true
        customerOrderId:
          type: string
          description: 'Not mapped for updates: updates to this property are ignored by CRUD services.'
          nullable: true
          readOnly: true
        productId:
          type: string
          nullable: true
        sectionId:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        sku:
          type: string
          nullable: true
        quantity:
          type: integer
          format: int32
        price:
          type: number
          format: double
        salePrice:
          type: number
          format: double
        extendedPrice:
          type: number
          format: double
          readOnly: true
        imageUrl:
          type: string
          nullable: true
        catalogId:
          type: string
          nullable: true
        categoryId:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        customText:
          type: string
          nullable: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/OrderConfigurationItemFile'
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    PropertyValidationRule:
      type: object
      properties:
        isUnique:
          type: boolean
          description: Uniquie value flag constrain
        charCountMin:
          type: integer
          description: Down chars count border or null if no defined
          format: int32
          nullable: true
        charCountMax:
          type: integer
          description: Upper chars count border or null if no defined
          format: int32
          nullable: true
        regExp:
          type: string
          description: Custom regular expression
          nullable: true
        propertyId:
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
      description: Represents property validation rules definition
    CustomerOrder:
      type: object
      properties:
        rowVersion:
          type: string
          format: byte
          nullable: true
        customerId:
          type: string
          nullable: true
        customerName:
          type: string
          nullable: true
        channelId:
          type: string
          nullable: true
        storeId:
          type: string
          nullable: true
        storeName:
          type: string
          nullable: true
        organizationId:
          type: string
          nullable: true
        organizationName:
          type: string
          nullable: true
        employeeId:
          type: string
          nullable: true
        employeeName:
          type: string
          nullable: true
        shoppingCartId:
          type: string
          description: The base shopping cart ID the order was created with
          nullable: true
        isPrototype:
          type: boolean
          description: This checkbox determines whether the order is a prototype
        purchaseOrderNumber:
          type: string
          description: The order internal number provided by customer
          nullable: true
        subscriptionNumber:
          type: string
          description: Number of subscription associated with this order
          nullable: true
        subscriptionId:
          type: string
          description: The ID of subscription associated with this order
          nullable: true
        objectType:
          type: string
          nullable: true
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/OrderAddress'
          nullable: true
        inPayments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentIn'
          nullable: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderLineItem'
          nullable: true
        shipments:
          type: array
          items:
            $ref: '#/components/schemas/OrderShipment'
          nullable: true
        feeDetails:
          type: array
          items:
            $ref: '#/components/schemas/FeeDetail'
          nullable: true
        relevanceScore:
          type: number
          format: double
          nullable: true
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
          nullable: true
        discountAmount:
          type: number
          description: "When a discount is applied to the order, the tax calculation has already been applied and is shown in the tax field.\nTherefore, the discount will not be taking tax into account. \nFor instance, if the cart subtotal is $100, and the tax subtotal is $15, a 10% discount will yield a total of $105 ($100 subtotal – $10 discount + $15 tax)."
          format: double
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
          nullable: true
        scopes:
          type: array
          items:
            type: string
          nullable: true
        total:
          type: number
          description: Order grand total
          format: double
        subTotal:
          type: number
          description: Amount of the item prices
          format: double
        subTotalWithTax:
          type: number
          description: Amount of the item prices with tax
          format: double
        subTotalDiscount:
          type: number
          description: Amount of the item discount total
          format: double
        subTotalDiscountWithTax:
          type: number
          description: Amount of the item discount total with tax
          format: double
        subTotalTaxTotal:
          type: number
          description: Amount of the item tax total
          format: double
        shippingTotal:
          type: number
          description: Amount of the shipment total
          format: double
        shippingTotalWithTax:
          type: number
          description: Amount of the shipment total with tax
          format: double
        shippingSubTotal:
          type: number
          description: Amount of the shipment prices
          format: double
        shippingSubTotalWithTax:
          type: number
          description: Amount of the shipment prices with tax
          format: double
        shippingDiscountTotal:
          type: number
          description: Amount of the shipment discount amounts
          format: double
        shippingDiscountTotalWithTax:
          type: number
          description: Amount of the shipment discount amounts with tax
          format: double
        shippingTaxTotal:
          type: number
          description: Reserved for future needs
          format: double
        paymentTotal:
          type: number
          description: Amount of the payments totals
          format: double
        paymentTotalWithTax:
          type: number
          description: Amount of the payment totals with tax
          format: double
        paymentSubTotal:
          type: number
          description: Amount of the payment prices
          format: double
        paymentSubTotalWithTax:
          type: number
          description: Amount of the payment prices with tax
          format: double
        paymentDiscountTotal:
          type: number
          description: Amount of the payments discount amounts
          format: double
        paymentDiscountTotalWithTax:
          type: number
          description: Amount of the payment discount amounts with tax
          format: double
        paymentTaxTotal:
          type: number
          description: Reserved for future needs
          format: double
        discountTotal:
          type: number
          description: Amount of the discount amounts of items, shipments and payments, and the order discount amount
          format: double
        discountTotalWithTax:
          type: number
          description: Amount of the discount amounts with tax of items, shipments and payments, and the order discount amount with tax
          format: double
        fee:
          type: number
          description: Any extra fees applied to the order. This value comes from the cart
          format: double
        feeWithTax:
          type: number
          description: Order fee with applied tax factor
          format: double
        feeTotal:
          type: number
          description: Amount of the order fee, as well as any item, shipment, and payment fees
          format: double
        feeTotalWithTax:
          type: number
          description: Total fee with applied tax factor
          format: double
        handlingTotal:
          type: number
          description: Reserved for future needs
          format: double
        handlingTotalWithTax:
          type: number
          description: Reserved for future needs
          format: double
        isAnonymous:
          type: boolean
        taxType:
          type: string
          description: Tax category or type
          nullable: true
        taxTotal:
          type: number
          description: Amount of tax totals for items, shipments, and payments without the order discount amount with tax factor applied
          format: double
        taxPercentRate:
          type: number
          format: double
        languageCode:
          type: string
          nullable: true
        operationType:
          type: string
          nullable: true
        parentOperationId:
          type: string
          nullable: true
        number:
          type: string
          nullable: true
        isApproved:
          type: boolean
        status:
          type: string
          nullable: true
        comment:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        sum:
          type: number
          format: double
        outerId:
          type: string
          nullable: true
        cancelledState:
          allOf:
          - $ref: '#/components/schemas/CancelledState'
          description: For system use to handle canellation flow
        isCancelled:
          type: boolean
          description: Used by payment provides to indicate that cancellation operation has completed
        cancelledDate:
          type: string
          format: date-time
          nullable: true
        cancelReason:
          type: string
          nullable: true
        dynamicProperties:
          type: array
          items:
            $ref: '#/components/schemas/DynamicObjectProperty'
          nullable: true
        operationsLog:
          type: array
          items:
            $ref: '#/components/schemas/OperationLog'
          nullable: true
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
          nullable: true
        createdBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        modifiedBy:
          maxLength: 64
          minLength: 0
          type: string
          nullable: true
        id:
          type: string
          nullable: true
      additionalProperties: false
    Property:
      type: object
      properties:
        isReadOnly:
          type: boolean
          description: Gets or sets a value indicating whether user can change property value.
        isManageable:
          type: boolean
          description: Gets or sets a value indicating whether user can change property metadata or remove this property.
          readOnly: true
        isNew:
          type: boolean
          description: Gets or sets a value indicating whether this instance is new. A new property should be created on server site instead of trying to update it.
        catalogId:
          type: string
          description: Gets or sets the catalog id that this product belongs to.
          nullable: true
        categoryId:
          type: string
          description: Gets or sets the category id that this product belongs to.
          nullable: true
        propertyGroupId:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        required:
          type: boolean
        dictionary:
          type: boolean
        multivalue:
          type: boolean
        multilanguage:
          type: boolean
        hidden:
          type: boolean
          description: Gets or sets a value indicating whether this VirtoCommerce.CatalogModule.Core.Model.Property is hidden.
        valueType:
          allOf:
          - $ref: '#/components/schemas/PropertyValueType'
        type:
          allOf:
          - $ref: '#/components/schemas/PropertyType'
        outerId:
          type: string
          nullable: true
        measureId:
          type: string
          nullable: true
        ownerName:
          type: string
          nullable: true
        displayOrder:
          type: integer
          format: int32
          nullable: true
        values:
          type: array
          items:
            $ref: '#/components/schemas/PropertyValue'
          nullable: true
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/PropertyAttribute'
          nullable: true
        displayNames:
          type: array
          items:
            $ref: '#/components/schemas/PropertyDisplayName'
          nullable: true
        validationRules:
          type: array
          items:
            $ref: '#/components/schemas/Prope

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