Bitrix24 E-Commerce API

The E-Commerce API from Bitrix24 — 139 operation(s) for e-commerce.

OpenAPI Specification

bitrix24-e-commerce-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Bitrix24 REST BIconnector E-Commerce API
  version: 1.0.0
  description: 'Bitrix24 REST API provides access to CRM, tasks, drive, chats, telephony, e-commerce, automation, and other modules. Documentation: https://apidocs.bitrix24.com'
  contact:
    name: Bitrix24 Developer Support
    url: https://apidocs.bitrix24.com/support.html
  license:
    name: MIT
    url: https://github.com/bitrix-tools/b24-rest-docs/blob/main/LICENSE
  x-logo:
    url: https://apidocs.bitrix24.com/_images/bitrix24logo.svg
servers:
- url: https://{portal}.bitrix24.com/rest
  description: Your Bitrix24 portal (cloud)
  variables:
    portal:
      default: your-portal
      description: Subdomain of your Bitrix24 portal
- url: https://{host}/rest
  description: On-Premise Bitrix24 installation
  variables:
    host:
      default: your-bitrix24.example.com
      description: Host of your on-premise installation
security:
- AccessToken: []
tags:
- name: E-Commerce
paths:
  /sale.basketitem.add:
    post:
      summary: Add Item (Position) to the Cart of an Existing Order sale.basketitem.add
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method adds an item to the cart of an existing order.
      operationId: sale_basketitem_add
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-add.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fields:
                  type: object
                  description: '| Field values for creating an item (position) in the cart of the order ||'
                orderId:
                  type: string
                  description: '| Order identifier ||'
                sort:
                  type: integer
                  description: '| Position in the list of order items ||'
                productid:
                  type: string
                  description: '| Product/variation identifier.'
                price:
                  type: number
                  format: double
                  description: '| Price including markups and discounts (see the `customPrice` field below).'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price excluding markups and discounts (see the `customPrice` field below).'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup (see the `customPrice` field below).'
                currency:
                  type: string
                  description: '| Currency of the price. Must match the currency of the order ||'
                customPrice:
                  type: string
                  description: '| Is the price specified manually. Possible values:'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the cart item ||'
              required:
              - fields
              - orderId
              - productid
              - currency
              - quantity
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                fields:
                  type: object
                  description: '| Field values for creating an item (position) in the cart of the order ||'
                orderId:
                  type: string
                  description: '| Order identifier ||'
                sort:
                  type: integer
                  description: '| Position in the list of order items ||'
                productid:
                  type: string
                  description: '| Product/variation identifier.'
                price:
                  type: number
                  format: double
                  description: '| Price including markups and discounts (see the `customPrice` field below).'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price excluding markups and discounts (see the `customPrice` field below).'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup (see the `customPrice` field below).'
                currency:
                  type: string
                  description: '| Currency of the price. Must match the currency of the order ||'
                customPrice:
                  type: string
                  description: '| Is the price specified manually. Possible values:'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the cart item ||'
              required:
              - fields
              - orderId
              - productid
              - currency
              - quantity
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.addCatalogProduct:
    post:
      summary: Add a position with a product or service from the catalog module to the cart of an existing order sale.basketitem.addCatalogProduct
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method adds a position (item) with a product or service from the catalog module to the cart of an existing order.
      operationId: sale_basketitem_addCatalogProduct
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-add-catalog-product.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fields:
                  type: object
                  description: '| Field values for creating an item (position) in the order cart ||'
                orderId:
                  type: string
                  description: '| Order identifier. Can only be specified when creating a cart position.'
                sort:
                  type: integer
                  description: '| Position in the order item list ||'
                productid:
                  type: string
                  description: '| Identifier of the product/variation'
                price:
                  type: number
                  format: double
                  description: '| Price considering markups and discounts (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price without considering markups and discounts (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                currency:
                  type: string
                  description: '| Currency of the price. Must match the currency of the order ||'
                customPrice:
                  type: string
                  description: '| Is the price specified manually:'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the cart position ||'
                name:
                  type: string
                  description: '| Name of the product ||'
              required:
              - fields
              - orderId
              - productid
              - currency
              - quantity
              - name
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                fields:
                  type: object
                  description: '| Field values for creating an item (position) in the order cart ||'
                orderId:
                  type: string
                  description: '| Order identifier. Can only be specified when creating a cart position.'
                sort:
                  type: integer
                  description: '| Position in the order item list ||'
                productid:
                  type: string
                  description: '| Identifier of the product/variation'
                price:
                  type: number
                  format: double
                  description: '| Price considering markups and discounts (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price without considering markups and discounts (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup (see the `customPrice` field below). If not specified, it will be calculated based on catalog data.'
                currency:
                  type: string
                  description: '| Currency of the price. Must match the currency of the order ||'
                customPrice:
                  type: string
                  description: '| Is the price specified manually:'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the cart position ||'
                name:
                  type: string
                  description: '| Name of the product ||'
              required:
              - fields
              - orderId
              - productid
              - currency
              - quantity
              - name
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.delete:
    post:
      summary: Remove item (position) from the cart using sale.basketitem.delete
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method removes an item (position) from the cart in the order.
      operationId: sale_basketitem_delete
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-delete.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the cart item (position).'
              required:
              - id
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the cart item (position).'
              required:
              - id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.get:
    post:
      summary: Get Information About a Basket Item (Position) sale.basketitem.get
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method retrieves information about a basket item (position).
      operationId: sale_basketitem_get
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-get.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the basket item (position).'
              required:
              - id
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the basket item (position).'
              required:
              - id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.getFields:
    post:
      summary: Get Available Fields of the Basket Item (sale.basketitem.getFields)
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. The method returns a list of available fields of the basket item. Each field is described as a field settings structure [rest_field_description](../data-types.md). No parameters.
      operationId: sale_basketitem_getFields
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-get-fields.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                result:
                  type: object
                  description: '| Root element of the response ||'
                basketItem:
                  type: object
                  description: '| Object in the format `{"field_1": "value_1", ... "field_N": "value_N"}`, where `field` is the identifier of the object sale_basket_item, and `value` is an object of type rest_field_description'
                time:
                  type: string
                  description: '| Information about the request execution time ||'
                Code:
                  type: string
                  description: '| Description ||'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                result:
                  type: object
                  description: '| Root element of the response ||'
                basketItem:
                  type: object
                  description: '| Object in the format `{"field_1": "value_1", ... "field_N": "value_N"}`, where `field` is the identifier of the object sale_basket_item, and `value` is an object of type rest_field_description'
                time:
                  type: string
                  description: '| Information about the request execution time ||'
                Code:
                  type: string
                  description: '| Description ||'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.getFieldsCatalogProduct:
    post:
      summary: Get Available Fields of a Basket Item (Product from Catalog) sale.basketitem.getFieldsCatalogProduct
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method returns a list of available fields for a basket item (position) for the methods [sale.basketitem.addCatalogProduct](./sale-basket-item-add-catalog-product.md) and [sale.basketitem.updateCatalogProduct](./sale-basket-item-update-catalog-product.md) — these methods only work with products from the catalog module in basket items (positions). Unlike [sale.basketitem.getFields](./sale-basket-item-get-fields.md), the method `sale.basketitem.getFieldsCatalogProduct` returns the minimum necessary list of fields for operation. No parameters required.
      operationId: sale_basketitem_getFieldsCatalogProduct
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-get-catalog-product-fields.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                result:
                  type: object
                  description: '| Root element of the response ||'
                basketItem:
                  type: object
                  description: '| Object in the format `{"field_1": "value_1", ... "field_N": "value_N"}`, where `field` is the identifier of the field of the sale_basket_item, and `value` is an object of type rest_field_description'
                time:
                  type: string
                  description: '| Information about the request execution time ||'
                Code:
                  type: string
                  description: '| Description ||'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                result:
                  type: object
                  description: '| Root element of the response ||'
                basketItem:
                  type: object
                  description: '| Object in the format `{"field_1": "value_1", ... "field_N": "value_N"}`, where `field` is the identifier of the field of the sale_basket_item, and `value` is an object of type rest_field_description'
                time:
                  type: string
                  description: '| Information about the request execution time ||'
                Code:
                  type: string
                  description: '| Description ||'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.list:
    post:
      summary: Get a List of Items (Positions) in the Cart sale.basketitem.list
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method returns a set of items (positions) in the cart filtered by the specified criteria.
      operationId: sale_basketitem_list
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-list.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                select:
                  type: array
                  items: {}
                  description: '|'
                filter:
                  type: object
                  description: '| An object for filtering the selected records in the format `{"field_1": "value_1", ... "field_N": "value_N"}`.'
                order:
                  type: object
                  description: '|'
                start:
                  type: integer
                  description: '| This parameter is used to manage pagination.'
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                select:
                  type: array
                  items: {}
                  description: '|'
                filter:
                  type: object
                  description: '| An object for filtering the selected records in the format `{"field_1": "value_1", ... "field_N": "value_N"}`.'
                order:
                  type: object
                  description: '|'
                start:
                  type: integer
                  description: '| This parameter is used to manage pagination.'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.update:
    post:
      summary: Change the position of the basket in an existing order sale.basketitem.update
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method modifies the position of the basket in an existing order.
      operationId: sale_basketitem_update
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-update.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the order item ||'
                fields:
                  type: object
                  description: '| Values of the fields to be modified ||'
                sort:
                  type: integer
                  description: '| Position in the list of order items ||'
                price:
                  type: number
                  format: double
                  description: '| Price including markups and discounts ||'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price excluding markups and discounts ||'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup ||'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the basket item ||'
                name:
                  type: string
                  description: '| Name of the product ||'
                weight:
                  type: integer
                  description: '| Weight of the product ||'
                dimensions:
                  type: string
                  description: '| Dimensions of the product (serialized array) ||'
                measureCode:
                  type: string
                  description: '| Code of the product''s unit of measure ||'
                measureName:
                  type: string
                  description: '| Name of the unit of measure ||'
                canBuy:
                  type: string
                  description: '| Availability flag of the product. Possible values:'
                vatRate:
                  type: number
                  format: double
                  description: '| Tax rate in percentage. To specify the "No VAT" rate, an empty string should be passed ||'
                vatIncluded:
                  type: string
                  description: '| Flag indicating whether VAT or tax is included in the product price. Possible values:'
                catalogXmlId:
                  type: string
                  description: '| External code of the product catalog ||'
                productXmlId:
                  type: string
                  description: '| External code of the product ||'
              required:
              - id
              - fields
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the order item ||'
                fields:
                  type: object
                  description: '| Values of the fields to be modified ||'
                sort:
                  type: integer
                  description: '| Position in the list of order items ||'
                price:
                  type: number
                  format: double
                  description: '| Price including markups and discounts ||'
                basePrice:
                  type: number
                  format: double
                  description: '| Original price excluding markups and discounts ||'
                discountPrice:
                  type: number
                  format: double
                  description: '| Amount of the final discount or markup ||'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the basket item ||'
                name:
                  type: string
                  description: '| Name of the product ||'
                weight:
                  type: integer
                  description: '| Weight of the product ||'
                dimensions:
                  type: string
                  description: '| Dimensions of the product (serialized array) ||'
                measureCode:
                  type: string
                  description: '| Code of the product''s unit of measure ||'
                measureName:
                  type: string
                  description: '| Name of the unit of measure ||'
                canBuy:
                  type: string
                  description: '| Availability flag of the product. Possible values:'
                vatRate:
                  type: number
                  format: double
                  description: '| Tax rate in percentage. To specify the "No VAT" rate, an empty string should be passed ||'
                vatIncluded:
                  type: string
                  description: '| Flag indicating whether VAT or tax is included in the product price. Possible values:'
                catalogXmlId:
                  type: string
                  description: '| External code of the product catalog ||'
                productXmlId:
                  type: string
                  description: '| External code of the product ||'
              required:
              - id
              - fields
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixResponse'
        4XX:
          description: Request error (400, 401, 403)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitrixError'
      security:
      - AccessToken: []
      - OAuth2:
        - sale
  /sale.basketitem.updateCatalogProduct:
    post:
      summary: Change the basket item position (catalog product) of an existing order sale.basketitem.updateCatalogProduct
      description: If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the [MCP server](../../../ai-tools/mcp.md) so that the assistant can utilize the official REST documentation. This method changes the basket item position (catalog product) of an existing order.
      operationId: sale_basketitem_updateCatalogProduct
      tags:
      - E-Commerce
      externalDocs:
        url: https://apidocs.bitrix24.com/api-reference/sale/basket-item/sale-basket-item-update-catalog-product.html
        description: Official Documentation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the basket item. Can be obtained using the methods sale.basketitem.addCatalogProduct and sale.basketitem.list ||'
                fields:
                  type: object
                  description: '| Object with modifiable fields ||'
                sort:
                  type: integer
                  description: '| Position in the order item list ||'
                quantity:
                  type: number
                  format: double
                  description: '| Quantity of the product ||'
                xmlId:
                  type: string
                  description: '| External code of the basket item ||'
              required:
              - id
              - fields
              - quantity
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: '| Identifier of the basket item. Can be obtain

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