Для AI-агентов: markdown этой страницы — /docs-content/entities/crm-payments/available-products.md индекс документации — /llms.txt

Доступные товарные строки для оплаты CRM

GET /v1/crm-payments/available-products

Возвращает товарные строки объекта CRM, например сделки, с количеством, которое ещё не вошло в оплаты.

ID строки отсюда передаётся как rowId при добавлении позиции в оплату.

Параметры

Параметр Тип Обяз. Описание
entityTypeId (query) number да Тип объекта CRM. Для сделки — 2
entityId (query) number да ID объекта CRM. Для сделки — ID из GET /v1/deals

Примеры

curl — личный ключ

Terminal
curl "https://vibecode.bitrix24.tech/v1/crm-payments/available-products?entityTypeId=2&entityId=8761" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth-приложение

Terminal
curl "https://vibecode.bitrix24.tech/v1/crm-payments/available-products?entityTypeId=2&entityId=8761" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-payments/available-products?entityTypeId=2&entityId=8761', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { data } = await res.json()
for (const row of data.productRows) {
  console.log(`${row.id}: ${row.productName} — доступно ${row.quantity} ${row.measureName}`)
}

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-payments/available-products?entityTypeId=2&entityId=8761', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean true при успехе
data.productRows array Товарные строки объекта
data.productRows[].id number ID товарной строки объекта. Передаётся как rowId в POST /v1/crm-payments/:id/products
data.productRows[].ownerId number ID объекта CRM
data.productRows[].ownerType string Тип объекта CRM буквенным кодом, для сделки — D
data.productRows[].productId number ID товара. Каталог: GET /v1/products. 0 — строка без товара из каталога
data.productRows[].productName string Название товара
data.productRows[].price number Цена
data.productRows[].priceAccount number Цена в валюте отчёта
data.productRows[].priceExclusive number Цена без налога со скидкой
data.productRows[].priceNetto number Цена нетто
data.productRows[].priceBrutto number Цена брутто
data.productRows[].quantity number Количество, которое ещё не вошло в оплаты объекта
data.productRows[].discountTypeId number Как задана скидка: 1 — суммой, 2 — процентом
data.productRows[].discountRate number Процент скидки
data.productRows[].discountSum number Сумма скидки
data.productRows[].taxRate number | null Налог в процентах. null — налог не задан
data.productRows[].taxIncluded string Налог включён в цену: Y или N
data.productRows[].customized string Строка изменена вручную: Y или N
data.productRows[].measureCode number Код единицы измерения
data.productRows[].measureName string Единица измерения
data.productRows[].sort number Сортировка
data.productRows[].xmlId string Внешний код строки
data.productRows[].type number Тип товара
data.productRows[].taxName string Название налога

Пример ответа

JSON
{
  "success": true,
  "data": {
    "productRows": [
      {
        "id": 2355,
        "ownerId": 8761,
        "ownerType": "D",
        "productId": 0,
        "productName": "TEST позиция для оплаты",
        "price": 1500,
        "priceAccount": 1500,
        "priceExclusive": 1500,
        "priceNetto": 1500,
        "priceBrutto": 1500,
        "quantity": 1,
        "discountTypeId": 2,
        "discountRate": 0,
        "discountSum": 0,
        "taxRate": null,
        "taxIncluded": "N",
        "customized": "Y",
        "measureCode": 796,
        "measureName": "шт",
        "sort": 0,
        "xmlId": "",
        "type": 1,
        "taxName": "Без НДС"
      }
    ]
  }
}

Пример ответа при ошибке

400 — в entityTypeId неизвестный тип объекта CRM:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_ENTITY_TYPE",
    "message": "This CRM entity type has no payable product rows."
  }
}

Ошибки

HTTP Код Описание
400 MISSING_REQUIRED_FIELDS Не передан entityTypeId или entityId, либо значение не положительное целое
400 INVALID_ENTITY_TYPE entityTypeId не тип объекта CRM, например 999
404 ENTITY_NOT_FOUND Объекта CRM с таким entityTypeId и entityId нет
422 BITRIX_ERROR Битрикс24 отклонил запрос, причина — в error.message
403 BITRIX_ACCESS_DENIED У пользователя ключа нет доступа к объекту CRM или оплате в Битрикс24
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
401 MISSING_API_KEY Не передан X-Api-Key

Полный список общих ошибок API — Ошибки.

Известные особенности

Остаток считается по всем оплатам объекта. В строке с количеством 3, из которых 2 уже добавлены в оплату, quantity равен 1. После удаления такой оплаты остаток снова становится 3.

Смотрите также