Bitrix24 E-Commerce API
The E-Commerce API from Bitrix24 — 139 operation(s) for e-commerce.
The E-Commerce API from Bitrix24 — 139 operation(s) for e-commerce.
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