Обращения
Все операции. Авторизация. Запросы и повторы.
Все пути в этом файле дополняют /api/v1 на домене организации.
Описание и ограничения
Назначение
Приём обращений от сайтов, ботов и CRM и управление их дальнейшей обработкой.
Поля и назначение
| Публичное поле | Формат и смысл | Доступ |
|---|---|---|
id |
id |
только чтение |
name |
строка | чтение и запись |
phone, email |
проверенный контакт | чтение и запись |
message |
строка, при создании обращения | при создании |
customer_id |
id/null, доступный клиент | чтение и запись |
assigned_user_id |
id/null, через assign | отдельная команда |
status |
перечисление, через status |
отдельная команда |
follow_up_at, desired_at |
дата и время/null | чтение и запись |
external_id |
строка внутри подключения | чтение и запись |
Обязательность и null указаны в схемах каждой операции ниже.
Доступ и выборка
leads:read/write и «Лиды и заявки → Просмотр, Изменение»; convert дополнительно требует права создания клиента.
Фильтры: status, customer_id, assigned_user_id, external_id, updated_since.
Запросы команд
При создании передайте name, контактные сведения phone или email и message. Также допустимы external_id, customer_id, follow_up_at и desired_at по таблице. Нужен хотя бы один корректный контакт; message — непустая строка до 10000 символов. Начальный статус — new, ответственный назначается по правилам организации и возвращается в ответе. external_id связывает обращение с внешней системой в пределах текущего подключения.
Команда смены статуса принимает status со значением new, active или archived и If-Resource-Version обращения. Статус converted устанавливается только при преобразовании обращения в клиента; попытка задать его напрямую возвращает 422. Для назначения ответственного передайте assigned_user_id и версию обращения. Идентификатор должен быть доступен; null снимает назначение. Обычное изменение не меняет клиента, связанного преобразованием.
Для преобразования обращения в клиента нужны mode=existing или mode=new и If-Resource-Version обращения. В режиме existing передайте customer_id; объект customer запрещён. В режиме new передайте customer по схеме создания клиента, включая обязательный phone; customer_id запрещён. Клиент не выбирается автоматически по совпадению телефона. Если обращение уже связано с тем же клиентом, повторное преобразование не выполняется. Выбор другого клиента возвращает 409 LEAD_ALREADY_CONVERTED. Клиент, обращение и связь сохраняются вместе. Ответ 200 содержит lead_id, customer_id и changed; версии перечислены в meta.affected_resources. Разные ключи не создают двух клиентов для одного обращения.
Правила и связи
- HTTP-повтор не добавляет второе сообщение, не повторяет назначение и уведомление.
- Дедупликация по контакту не заменяет
Idempotency-Keyи внешний ID. - Время первого контакта
first_contact_at, последнего сообщенияlast_message_atи сведения от подключённого канала формирует сервер.
Операции
| Метод | Путь | Назначение |
|---|---|---|
| GET | /leads |
Список с фильтрами и пагинацией |
| POST | /leads |
Создание |
| GET | /leads/{id} |
Карточка |
| POST | /leads/{id}/update |
Изменение разрешённых полей |
| POST | /leads/{id}/status |
Допустимое изменение статуса |
| POST | /leads/{id}/assign |
Назначение ответственного |
| POST | /leads/{id}/convert |
Конвертация в клиента с явным выбором соответствия |
GET /leads
Список с фильтрами и пагинацией.
Доступ. Разрешения подключения: leads:read. Права сотрудника: «Лиды и заявки → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
filter[status] |
параметр запроса | строка | нет | нет | Допустимо: "new", "active", "converted", "archived" |
filter[customer_id] |
параметр запроса | целое число | нет | нет | ≥ 1 |
filter[assigned_user_id] |
параметр запроса | целое число | нет | нет | ≥ 1 |
filter[external_id] |
параметр запроса | строка | нет | нет | не более 255 символов |
filter[updated_since] |
параметр запроса | строка (дата и время) | нет | нет | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
filter[updated_before] |
параметр запроса | строка (дата и время) | нет | нет | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
sort |
параметр запроса | строка | нет | нет | Допустимо: "id", "-id", "updated_at,id", "-updated_at,-id" |
page[size] |
параметр запроса | целое число | нет | нет | ≥ 1; ≤ 100 |
page[cursor] |
параметр запроса | строка | нет | нет | не более 8192 символов |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff \
"$API/leads" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json"
POST /leads
Создание.
Доступ. Разрешения подключения: leads:write. Права сотрудника: «Лиды и заявки → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
name |
строка / null | нет | да | не более 255 символов |
phone |
строка / null | нет | да | не более 32 символов |
email |
строка / null (email) |
нет | да | не более 255 символов |
customer_id |
целое число / null | нет | да | ≥ 1 |
external_id |
строка / null | нет | да | не менее 1 символов; не более 255 символов |
follow_up_at |
строка / null (дата и время) | нет | да | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
desired_at |
строка / null (дата и время) | нет | да | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
message |
строка | да | нет | не менее 1 символов; не более 10000 символов |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 201 | Создано. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 409 | Конфликт состояния или повтора. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 201 | Location |
строка | |
| 201 | Idempotency-Replayed |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff --request POST \
"$API/leads" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-leads-store:001" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.leads.store.json'
GET /leads/{id}
Карточка.
Доступ. Разрешения подключения: leads:read. Права сотрудника: «Лиды и заявки → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
id |
путь | строка | да | нет | Шаблон: ^(?:[0-9]+)$ |
If-None-Match |
заголовок | строка | нет | нет | — |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 304 | Представление не изменилось, без тела. Условный GET |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 200 | ETag |
строка | |
| 304 | ETag |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff \
"$API/leads/101" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json"
POST /leads/{id}/update
Изменение разрешённых полей.
Доступ. Разрешения подключения: leads:write. Права сотрудника: «Лиды и заявки → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
id |
путь | строка | да | нет | Шаблон: ^(?:[0-9]+)$ |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
If-Resource-Version |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
name |
строка / null | нет | да | не более 255 символов |
phone |
строка / null | нет | да | не более 32 символов |
email |
строка / null (email) |
нет | да | не более 255 символов |
customer_id |
целое число / null | нет | да | ≥ 1 |
external_id |
строка / null | нет | да | не менее 1 символов; не более 255 символов |
follow_up_at |
строка / null (дата и время) | нет | да | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
desired_at |
строка / null (дата и время) | нет | да | не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,6})?(?:Z|[+-]\d{2}:\d{2})$ |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 409 | Конфликт состояния или повтора. Коды и формат ошибки |
| 412 | Версия устарела. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 428 | Нужно предусловие версии. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 200 | Location |
строка | |
| 200 | Idempotency-Replayed |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff --request POST \
"$API/leads/101/update" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-leads-update:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.leads.update.json'
POST /leads/{id}/status
Допустимое изменение статуса.
Доступ. Разрешения подключения: leads:write. Права сотрудника: «Лиды и заявки → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
id |
путь | строка | да | нет | Шаблон: ^(?:[0-9]+)$ |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
If-Resource-Version |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
status |
строка | да | нет | Допустимо: "new", "active", "archived" |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 409 | Конфликт состояния или повтора. Коды и формат ошибки |
| 412 | Версия устарела. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 428 | Нужно предусловие версии. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 200 | Location |
строка | |
| 200 | Idempotency-Replayed |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff --request POST \
"$API/leads/101/status" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-leads-status:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.leads.status.json'
POST /leads/{id}/assign
Назначение ответственного.
Доступ. Разрешения подключения: leads:write. Права сотрудника: «Лиды и заявки → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
id |
путь | строка | да | нет | Шаблон: ^(?:[0-9]+)$ |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
If-Resource-Version |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
assigned_user_id |
целое число / null | да | да | ≥ 1 |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 409 | Конфликт состояния или повтора. Коды и формат ошибки |
| 412 | Версия устарела. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 428 | Нужно предусловие версии. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 200 | Location |
строка | |
| 200 | Idempotency-Replayed |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff --request POST \
"$API/leads/101/assign" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-leads-assign:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.leads.assign.json'
POST /leads/{id}/convert
Конвертация в клиента с явным выбором соответствия.
Доступ. Разрешения подключения: leads:write. Права сотрудника: «Лиды и заявки → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
id |
путь | строка | да | нет | Шаблон: ^(?:[0-9]+)$ |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
If-Resource-Version |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
mode |
строка | да | нет | Допустимо: "existing", "new" |
customer_id |
целое число | нет | нет | ≥ 1; Условие: required_if:mode,existing; Условие: prohibited_if:mode,new |
customer |
объект | нет | нет | — |
customer.name |
строка | да | нет | не более 255 символов |
customer.phone |
строка | да | нет | не более 255 символов |
customer.company_name |
строка / null | нет | да | не более 255 символов |
customer.additional_phone |
строка / null | нет | да | не более 255 символов |
customer.email |
строка / null (email) |
нет | да | не более 255 символов |
customer.address |
строка / null | нет | да | не более 255 символов |
customer.inn |
строка / null | нет | да | не более 255 символов |
customer.kpp |
строка / null | нет | да | не более 255 символов |
customer.ogrn |
строка / null | нет | да | не более 255 символов |
customer.source |
строка / null | нет | да | не более 255 символов |
customer.internal_note |
строка / null | нет | да | не более 10000 символов |
customer.is_customer |
логическое значение | нет | нет | — |
customer.is_supplier |
логическое значение | нет | нет | — |
customer.bank |
объект / null | нет | да | — |
customer.bank.name |
строка / null | нет | да | не более 255 символов |
customer.bank.bik |
строка / null | нет | да | не более 255 символов |
customer.bank.account |
строка / null | нет | да | не более 255 символов |
customer.bank.correspondent_account |
строка / null | нет | да | не более 255 символов |
customer.contacts |
массив | нет | нет | не более 100 элементов |
customer.contacts[] |
объект | да | нет | — |
customer.contacts[].name |
строка | да | нет | не более 40 символов |
customer.contacts[].position |
строка / null | нет | да | не более 40 символов |
customer.contacts[].phone |
строка | да | нет | не более 255 символов |
customer.custom_fields |
массив | нет | нет | не более 100 элементов; Без повторов |
customer.custom_fields[] |
объект | да | нет | — |
customer.custom_fields[].field_id |
целое число | да | нет | ≥ 1 |
customer.custom_fields[].value |
строка / логическое значение / массив / объект / null | да | да | — |
customer.custom_fields[].value (вариант 3) |
массив | нет | нет | — |
customer.custom_fields[].value (вариант 3)[] |
строка | да | нет | — |
customer.custom_fields[].value (вариант 4) |
объект | нет | нет | — |
customer.custom_fields[].value (вариант 4).amount |
строка | да | нет | — |
customer.custom_fields[].value (вариант 4).currency |
строка | да | нет | — |
customer.external_id |
строка / null | нет | да | не более 255 символов |
customer[] |
строка | да | нет | — |
Ответы
| HTTP | Назначение и схема |
|---|---|
| 200 | Успех. Полная схема и пример |
| 401 | Требуется действующий Bearer. Коды и формат ошибки |
| 403 | Недостаточно допуска. Коды и формат ошибки |
| 404 | Не найдено или недоступно. Коды и формат ошибки |
| 409 | Конфликт состояния или повтора. Коды и формат ошибки |
| 412 | Версия устарела. Коды и формат ошибки |
| 422 | Ошибка входных данных. Коды и формат ошибки |
| 428 | Нужно предусловие версии. Коды и формат ошибки |
| 429 | Лимит запросов, Retry-After. Коды и формат ошибки |
| 503 | Временно недоступно. Коды и формат ошибки |
| HTTP | Заголовок ответа | Тип | Описание |
|---|---|---|---|
| 200 | Location |
строка | |
| 200 | Idempotency-Replayed |
строка |
Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.
У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.
Пример запроса
Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.
curl --silent --show-error --globoff --request POST \
"$API/leads/101/convert" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-leads-convert:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.leads.convert.json'