# Create: Booking resources

`POST /v1/booking-resources`

Requires `booking` scope. Writes require READWRITE. Body fields are flat, without an outer fields object. Setting work hours does not create a booking.

Bitrix24 enables client notifications by default. Explicitly disable all six is*NotificationOn switches to prevent SMS/WhatsApp notifications. Cards return booleans; writes accept booleans or Y/N.

## Parameters

| Field | Description |
|---|---|
| name | Changed field. |
| typeId | Changed field. |
| isInfoNotificationOn | Optional notification switch; false disables. |
| isConfirmationNotificationOn | Optional notification switch; false disables. |
| isReminderNotificationOn | Optional notification switch; false disables. |
| isFeedbackNotificationOn | Optional notification switch; false disables. |
| isDelayedNotificationOn | Optional notification switch; false disables. |
| isCancellationNotificationOn | Optional notification switch; false disables. |

Other card fields: `senderCode`, notification delays/repetitions, `templateTypeInfo|Confirmation|Reminder|Feedback|Delayed`.

## Response fields

`success: true`, `data`: resource/type card with id, name and notification settings; fields can be null.

```json
{
  "success": true,
  "data": {
    "id": 10,
    "name": "VIBE-PROBE Specialist",
    "description": "Appointment resource",
    "typeId": 7,
    "isMain": true,
    "isInfoNotificationOn": false,
    "isConfirmationNotificationOn": false,
    "isReminderNotificationOn": false,
    "isFeedbackNotificationOn": false,
    "isDelayedNotificationOn": false,
    "isCancellationNotificationOn": false
  }
}
```

## Examples

### cURL — personal key

```bash
curl -X POST "https://vibecode.bitrix24.com/v1/booking-resources" -H "X-Api-Key: $VIBE_API_KEY" -H 'Content-Type: application/json' -d '{"name":"VIBE-PROBE Specialist","typeId":7,"isInfoNotificationOn":false,"isConfirmationNotificationOn":false,"isReminderNotificationOn":false,"isFeedbackNotificationOn":false,"isDelayedNotificationOn":false,"isCancellationNotificationOn":false}'
```

### cURL — OAuth

```bash
curl -X POST "https://vibecode.bitrix24.com/v1/booking-resources" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $SESSION_TOKEN" -H 'Content-Type: application/json' -d '{"name":"VIBE-PROBE Specialist","typeId":7,"isInfoNotificationOn":false,"isConfirmationNotificationOn":false,"isReminderNotificationOn":false,"isFeedbackNotificationOn":false,"isDelayedNotificationOn":false,"isCancellationNotificationOn":false}'
```

### JavaScript — personal key

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/booking-resources', {
  method: 'POST',
  headers: { 'X-Api-Key': apiKey, 'Content-Type': 'application/json' },
  body: JSON.stringify({"name":"VIBE-PROBE Specialist","typeId":7,"isInfoNotificationOn":false,"isConfirmationNotificationOn":false,"isReminderNotificationOn":false,"isFeedbackNotificationOn":false,"isDelayedNotificationOn":false,"isCancellationNotificationOn":false}),
});
console.log(await response.json());
```

### JavaScript — OAuth

```javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/booking-resources', {
  method: 'POST',
  headers: { 'X-Api-Key': apiKey, Authorization: `Bearer ${sessionToken}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({"name":"VIBE-PROBE Specialist","typeId":7,"isInfoNotificationOn":false,"isConfirmationNotificationOn":false,"isReminderNotificationOn":false,"isFeedbackNotificationOn":false,"isDelayedNotificationOn":false,"isCancellationNotificationOn":false}),
});
console.log(await response.json());
```

## Errors

| HTTP | Code | Condition |
|---|---|---|
| 400 | INVALID_PARAMS | Malformed path/body/query |
| 400 | MISSING_REQUIRED_FIELDS | Missing name for resource create or code for type create |
| 400 | READONLY_FIELD | id in write body |
| 401 | TOKEN_MISSING | No Bitrix24 credentials |
| 403 | SCOPE_DENIED | Missing booking scope |
| 403 | WRITE_BLOCKED_READONLY_KEY | Write with read-only key |
| 404 | ENTITY_NOT_FOUND | Missing record |
| 422 | BITRIX_ERROR | Bitrix24 business refusal |
| 429 | RATE_LIMITED | Rate limit |
| 502 | BITRIX_RESPONSE_INVALID | Invalid upstream payload |
| 503 | BITRIX_TIMEOUT | Upstream timeout |

[Errors](/docs/errors).

404 — record not found:

```json
{"success":false,"error":{"code":"ENTITY_NOT_FOUND","message":"Booking record not found"}}
```
