booking.v1.resource.add
Добавить новый ресурс
Описание
Метод booking.v1.resource.add добавляет новый ресурс.
Параметры
fields
object
обязательный
Объект, содержащий значения полей для создания ресурса (подробное описание)
Параметр fields
name
string
обязательный
Название ресурса
description
string
необязательный
Описание ресурса.
По умолчанию пустая строка
typeId
integer
обязательный
Идентификатор типа ресурса.
Список доступных типов можно узнать с помощью метода booking.v1.resourceType.list
isMain
string
необязательный
Как показывать ресурс. Возможные значения:
- Y — в колонках расписания
- N — при пересечении ресурсов
По умолчанию Y
isInfoNotificationOn
string
необязательный
Сообщение клиенту о записи. Возможные значения:
- Y — включено
- N — выключено
По умолчанию Y
templateTypeInfo
string
необязательный
Тип шаблона сообщения о записи. Возможные значения:
- inanimate — шаблон для бронирования оборудования и помещений
- animate — шаблон для записи к специалистам
По умолчанию inanimate
isConfirmationNotificationOn
string
необязательный
Автоматическое подтверждение записи. Возможные значения:
- Y — включено
- N — выключено
По умолчанию Y
templateTypeConfirmation
string
необязательный
Тип шаблона сообщения о подтверждении записи. Возможные значения:
- inanimate — шаблон для бронирования оборудования и помещений
- animate — шаблон для записи к специалистам
По умолчанию inanimate
isReminderNotificationOn
string
необязательный
Напоминание о записи. Возможные значения:
- Y — включено
- N — выключено
По умолчанию Y
templateTypeReminder
string
необязательный
Тип шаблона сообщения для напоминания. Возможные значения: base
isFeedbackNotificationOn
string
необязательный
Запрос обратной связи. Возможные значения:
- Y — включено
- N — выключено
По умолчанию Y
templateTypeFeedback
string
необязательный
Тип шаблона сообщения для запроса обратной связи. Возможные значения:
- inanimate — шаблон для бронирования оборудования и помещений
- animate — шаблон для записи к специалистам
По умолчанию inanimate
isDelayedNotificationOn
string
необязательный
Напоминание, когда клиент опаздывает. Возможные значения:
- Y — включено
- N — выключено
По умолчанию Y
templateTypeDelayed
string
необязательный
Тип шаблона сообщения об опоздании. Возможные значения:
- inanimate — шаблон для бронирования оборудования и помещений
- animate — шаблон для записи к специалистам
По умолчанию inanimate
infoDelay
integer
необязательный
Задержка, после которой клиенту приходит сообщение о записи. Указывается в секундах.
По умолчанию 300
reminderDelay
integer
необязательный
Время до записи, за которое клиенту приходит напоминание о записи. Указывается в секундах.
По умолчанию -1, утром в день записи
delayedDelay
integer
необязательный
Время, через сколько отправить клиенту сообщение об опоздании. Указывается в секундах.
По умолчанию 300
delayedCounterDelay
integer
необязательный
Время, через сколько включить счетчик в календаре. Указывается в секундах.
По умолчанию 7200
confirmationDelay
integer
необязательный
Время до записи, когда клиенту приходит первое сообщение для подтверждения записи. Указывается в секундах.
По умолчанию 86400
confirmationRepetitions
integer
необязательный
Количество сообщений, которые приходят клиенту для подтверждения записи, не учитывая первого.
По умолчанию 0
confirmationRepetitionsInterval
integer
необязательный
Интервал между сообщениями о подтверждении записи. Указывается в секундах.
По умолчанию 0
confirmationCounterDelay
integer
необязательный
Время до записи, после которого загорается счетчик не подтвержденной записи. Указывается в секундах.
По умолчанию 7200
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"name":"Название","description":"Описание","typeId":1,"isMain":"N","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"N","templateTypeReminder":"base","isFeedbackNotificationOn":"Y","templateTypeFeedback":"inanimate","isDelayedNotificationOn":"Y","templateTypeDelayed":"inanimate","infoDelay":60,"reminderDelay":-1,"delayedDelay":300,"delayedCounterDelay":7200,"confirmationDelay":86400,"confirmationRepetitions":1,"confirmationRepetitionsInterval":3600,"confirmationCounterDelay":7200}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/booking.v1.resource.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"name":"Название","description":"Описание","typeId":1,"isMain":"N","isInfoNotificationOn":"Y","templateTypeInfo":"inanimate","isConfirmationNotificationOn":"Y","templateTypeConfirmation":"animate","isReminderNotificationOn":"N","templateTypeReminder":"base","isFeedbackNotificationOn":"Y","templateTypeFeedback":"inanimate","isDelayedNotificationOn":"Y","templateTypeDelayed":"inanimate","infoDelay":60,"reminderDelay":-1,"delayedDelay":300,"delayedCounterDelay":7200,"confirmationDelay":86400,"confirmationRepetitions":1,"confirmationRepetitionsInterval":3600,"confirmationCounterDelay":7200},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/booking.v1.resource.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type ResourceAddResult = {
id: number
}
try {
const response = await $b24.actions.v2.call.make<ResourceAddResult>({
method: 'booking.v1.resource.add',
params: {
fields: {
name: 'Name',
description: 'Description',
typeId: 1,
isMain: 'N',
isInfoNotificationOn: 'Y',
templateTypeInfo: 'inanimate',
isConfirmationNotificationOn: 'Y',
templateTypeConfirmation: 'animate',
isReminderNotificationOn: 'N',
templateTypeReminder: 'base',
isFeedbackNotificationOn: 'Y',
templateTypeFeedback: 'inanimate',
isDelayedNotificationOn: 'Y',
templateTypeDelayed: 'inanimate',
infoDelay: 60,
reminderDelay: -1,
delayedDelay: 300,
delayedCounterDelay: 7200,
confirmationDelay: 86400,
confirmationRepetitions: 1,
confirmationRepetitionsInterval: 3600,
confirmationCounterDelay: 7200,
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('New resource ID:', result.id)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addResource() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'booking.v1.resource.add',
params: {
fields: {
name: 'Name',
description: 'Description',
typeId: 1,
isMain: 'N',
isInfoNotificationOn: 'Y',
templateTypeInfo: 'inanimate',
isConfirmationNotificationOn: 'Y',
templateTypeConfirmation: 'animate',
isReminderNotificationOn: 'N',
templateTypeReminder: 'base',
isFeedbackNotificationOn: 'Y',
templateTypeFeedback: 'inanimate',
isDelayedNotificationOn: 'Y',
templateTypeDelayed: 'inanimate',
infoDelay: 60,
reminderDelay: -1,
delayedDelay: 300,
delayedCounterDelay: 7200,
confirmationDelay: 86400,
confirmationRepetitions: 1,
confirmationRepetitionsInterval: 3600,
confirmationCounterDelay: 7200,
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('New resource ID:', result.id)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addResource)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.booking.v1.resource.add(
fields={
"name": "Name",
"description": "Description",
"typeId": 1,
"isMain": "N",
"isInfoNotificationOn": "Y",
"templateTypeInfo": "inanimate",
"isConfirmationNotificationOn": "Y",
"templateTypeConfirmation": "animate",
"isReminderNotificationOn": "N",
"templateTypeReminder": "base",
"isFeedbackNotificationOn": "Y",
"templateTypeFeedback": "inanimate",
"isDelayedNotificationOn": "Y",
"templateTypeDelayed": "inanimate",
"infoDelay": 60,
"reminderDelay": -1,
"delayedDelay": 300,
"delayedCounterDelay": 7200,
"confirmationDelay": 86400,
"confirmationRepetitions": 1,
"confirmationRepetitionsInterval": 3600,
"confirmationCounterDelay": 7200,
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'booking.v1.resource.add',
[
'fields' => [
'name' => 'Название',
'description' => 'Описание',
'typeId' => 1,
'isMain' => 'N',
'isInfoNotificationOn' => 'Y',
'templateTypeInfo' => 'inanimate',
'isConfirmationNotificationOn' => 'Y',
'templateTypeConfirmation' => 'animate',
'isReminderNotificationOn' => 'N',
'templateTypeReminder' => 'base',
'isFeedbackNotificationOn' => 'Y',
'templateTypeFeedback' => 'inanimate',
'isDelayedNotificationOn' => 'Y',
'templateTypeDelayed' => 'inanimate',
'infoDelay' => 60,
'reminderDelay' => -1,
'delayedDelay' => 300,
'delayedCounterDelay' => 7200,
'confirmationDelay' => 86400,
'confirmationRepetitions' => 1,
'confirmationRepetitionsInterval' => 3600,
'confirmationCounterDelay' => 7200,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding resource: ' . $e->getMessage();
}
BX24.callMethod(
"booking.v1.resource.add",
{
fields: {
name: "Название",
description: "Описание",
typeId: 1,
isMain: "N",
isInfoNotificationOn: "Y",
templateTypeInfo: "inanimate",
isConfirmationNotificationOn: "Y",
templateTypeConfirmation: "animate",
isReminderNotificationOn: "N",
templateTypeReminder: "base",
isFeedbackNotificationOn: "Y",
templateTypeFeedback: "inanimate",
isDelayedNotificationOn: "Y",
templateTypeDelayed: "inanimate",
infoDelay: 60,
reminderDelay: -1,
delayedDelay: 300,
delayedCounterDelay: 7200,
confirmationDelay: 86400,
confirmationRepetitions: 1,
confirmationRepetitionsInterval: 3600,
confirmationCounterDelay: 7200
}
},
result => {
if (result.error())
console.error(result.error());
else
console.dir(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'booking.v1.resource.add',
[
'fields' => [
'name' => 'Название',
'description' => 'Описание',
'typeId' => 1,
'isMain' => 'N',
'isInfoNotificationOn' => 'Y',
'templateTypeInfo' => 'inanimate',
'isConfirmationNotificationOn' => 'Y',
'templateTypeConfirmation' => 'animate',
'isReminderNotificationOn' => 'N',
'templateTypeReminder' => 'base',
'isFeedbackNotificationOn' => 'Y',
'templateTypeFeedback' => 'inanimate',
'isDelayedNotificationOn' => 'Y',
'templateTypeDelayed' => 'inanimate',
'infoDelay' => 60,
'reminderDelay' => -1,
'delayedDelay' => 300,
'delayedCounterDelay' => 7200,
'confirmationDelay' => 86400,
'confirmationRepetitions' => 1,
'confirmationRepetitionsInterval' => 3600,
'confirmationCounterDelay' => 7200
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "booking.v1.resource.add", b24.Params{
"fields": b24.Params{
"name": "Название",
"description": "Описание",
"typeId": 1,
"isMain": "N",
"isInfoNotificationOn": "Y",
"templateTypeInfo": "inanimate",
"isConfirmationNotificationOn": "Y",
"templateTypeConfirmation": "animate",
"isReminderNotificationOn": "N",
"templateTypeReminder": "base",
"isFeedbackNotificationOn": "Y",
"templateTypeFeedback": "inanimate",
"isDelayedNotificationOn": "Y",
"templateTypeDelayed": "inanimate",
"infoDelay": 60,
"reminderDelay": -1,
"delayedDelay": 300,
"delayedCounterDelay": 7200,
"confirmationDelay": 86400,
"confirmationRepetitions": 1,
"confirmationRepetitionsInterval": 3600,
"confirmationCounterDelay": 7200,
},
})
if err != nil {
return fmt.Errorf("booking.v1.resource.add: %w", err)
}
var item struct {
ID b24.ID `json:"id"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID)
Ответ
HTTP-статус: 200
{
"result": {
"id": 1823
},
"time": {
"start": 1724068028.331234,
"finish": 1724068028.726591,
"duration": 0.3953571319580078,
"processing": 0.13033390045166016,
"date_start": "2025-01-21T13:47:08+02:00",
"date_finish": "2025-01-21T13:47:08+02:00",
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа, содержит идентификатор созданного ресурса
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": 1013,
"error_description": "Resource type with id 17 does not exist"
}
| Код | Описание | Значение |
|---|---|---|
0 |
Required fields: name |
Не передан обязательный параметр внутри fields |
100 |
Could not find value for parameter {fields} |
Не передан обязательный параметр fields |
1006 |
ResourceType not found |
Не указан typeId |
1013 |
Resource type with id does not exist |
Указан несуществующий typeId |
422 |
Invalid value of the field |
Неверное значение поля |

